部署 GCP 功能时,服务帐户不断恢复为默认值,从而导致错误

问题描述 投票:0回答:1

部署第二代环境 GCP 功能时,尽管我选择了专门为此功能创建的自定义帐户,但服务帐户仍然会恢复为默认的“[电子邮件受保护]”服务帐户。我该如何防止这种情况发生?我不想使用默认值作为所选服务帐户来运行该功能。

Eventarc 触发设置

运行时服务帐户设置

错误信息

我尝试创建多个不同的函数,更改触发器类型,所有这些都具有相同的结果。

google-cloud-platform google-bigquery google-cloud-functions google-cloud-storage
1个回答
0
投票

查看您提供的错误消息,该消息与云函数将运行的服务帐户无关……而是与用于构建将在运行时使用的映像的服务帐户相关。 当您使用 Cloud Functions (Gen2) 时,会(在幕后)构建一个包含您的 Cloud Function 实现的 Docker 映像。 在运行时,该映像用于创建执行的容器。 当您部署 Cloud Function 时,将使用名为 Cloud Build 的服务来构建容器。 Cloud Build 需要凭据才能运行。 有一个用于此目的的默认服务帐户。 在您的环境中,默认服务帐户似乎已被禁用(可能是出于安全目的由您的管理员禁用)。 因此,当您尝试部署云功能时,它无法构建,因此无法部署。 这与您提供的作为函数最终运行的服务帐户的服务帐户非常不同。

解决方案是通过显式传入有权使用 Cloud Build 的服务帐户来部署 Cloud Function。 这个故事有完整记录这里。 假设您的环境被管理员锁定,您可能需要与他们进行对话,向他们展示这篇文章并告诉他们您希望实现什么目标。 他们可能会为您/团队创建一个服务帐户并使用,然后您可以将其插入 gcloud 命令中以部署该功能。

© www.soinside.com 2019 - 2024. All rights reserved.