gcloud --version
Google Cloud SDK 488.0.0
alpha 2024.08.09
beta 2024.08.09
bq 2.1.8
core 2024.08.09
gcloud-crc32c 1.0.0
gsutil 5.30
istioctl 1.20.47
我不知道如何执行
gcloud functions deploy --gen2
命令。我可以部署第 1 代,但第 2 代会抛出无法破译的服务帐户错误。
首先从文档开始:https://cloud.google.com/functions/docs/deploy#basics
gcloud functions deploy sdfsdfsd \
--gen2 \
--project="sdfsdf" \
--region="us-central1" \
--entry-point=my_func \
--no-allow-unauthenticated \
--runtime=python312 \
--build-service-account="[email protected]" \
--trigger-http
我明白了
ERROR: (gcloud.functions.deploy) OperationError: code=3, message=Deployment failed: ["params.service_account: must be empty or a service account of format: projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}"]. Check your build configuration.
已经没有意义了,因为我没有设置服务帐户。
然后我设置帐户:
--service-account="[email protected]"
,我得到ERROR: (gcloud.functions.deploy) Deployment failed: ["params.service_account: must be empty or a service account of format: projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}"]. Check your build configuration.
。
我找不到使用这种格式的 gcloud cli 的任何示例,但是当我尝试时,我收到此错误:
ERROR: (gcloud.functions.deploy) ResponseError: status=[400], code=[Ok], message=[Could not create Cloud Run service sdfsdfsd. serviceAccountName: Unsupported service account: projects/my-project-id/serviceAccounts/[email protected]]
我为
[email protected]
帐户授予了以下角色:
我需要做什么才能让这个命令起作用?
我可以使用此服务帐户通过 UI 部署第 2 代功能,不会出现任何问题。
答案与
--service-account
参数无关,尽管每当我修改其格式时都会遇到不同的错误!
我最初将其关闭(编辑我的帖子以包含它),但我正在使用自定义构建服务帐户(出于安全原因,默认值现在已禁用)。
看来这是正确的开关系列:
--build-service-account="projects/{PROJECT_ID}/serviceAccounts/{CLOUD_BUILD_GSA}" \
--service-account="{RUNTIME_GSA}" \
它在文档中确实提到了这种格式:https://cloud.google.com/sdk/gcloud/reference/functions/deploy#--build-service-account
但是错误随着修改另一个开关而改变这一事实非常令人困惑。我会打开一份错误报告,但不确定它的措辞如何。
params.service_account
错误中应该是 params.build_service_account
。