部署命令不使用 --allow-unauthenticated
Deploy command doesn't use --allow-unauthenticated
我编写了一个 google 函数来模拟服务帐户以生成签名 url。但是,在我使用以下命令部署后,未启用允许未经身份验证的选项。
gcloud functions deploy func-sa-test2 \
--entry-point main \
--runtime python39 \
--impersonate-service-account sa-email \
--service-account sa-email \
--trigger-http \
--allow-unauthenticated
我必须使用以下命令再次部署它以单独启用该选项。
gcloud functions deploy func-sa-test2 --allow-unauthenticated
我怎样才能以某种方式使用单个命令正确部署它。谢谢!
“没有错误”很奇怪。确保模拟的服务帐户具有 roles/cloudfunctions.admin
.
角色
事实上,您的第一个命令是使用 GCLOUD 和 sa-email 的凭据进行部署。 sa-email 必须有权在函数
上设置 IAM 策略
在第二个命令中,您不再使用 sa-email 凭据,而是使用您的用户凭据,这次成功了,因为您拥有权限。
要进行调查,您可以尝试 运行 该命令
gcloud functions add-iam-policy-binding func-sa-test2 --member="allUsers" --role="roles/cloudfunctions.invoker" --impersonate-service-account sa-email
如果您没有权限,应该会失败
服务帐户不包含“cloudfunctions.functions.setIamPolicy”权限。这就是您无法在单个命令中启用标志 --allow-unauthenticated 的原因。
如果您的服务帐户具有以下角色之一(Cloud Functions Admin、Firebase Admin、Firebase Develop Admin、Firebase Extensions API Service Agent、Owner、Security Admin ) 然后您可以在单个命令中启用 --allow-unauthenticated。
在单独的命令中执行时,您可能拥有 所有者权限。所以你没有遇到任何问题。
如果需要,可以使用控制台来避免此类问题。
我编写了一个 google 函数来模拟服务帐户以生成签名 url。但是,在我使用以下命令部署后,未启用允许未经身份验证的选项。
gcloud functions deploy func-sa-test2 \
--entry-point main \
--runtime python39 \
--impersonate-service-account sa-email \
--service-account sa-email \
--trigger-http \
--allow-unauthenticated
我必须使用以下命令再次部署它以单独启用该选项。
gcloud functions deploy func-sa-test2 --allow-unauthenticated
我怎样才能以某种方式使用单个命令正确部署它。谢谢!
“没有错误”很奇怪。确保模拟的服务帐户具有 roles/cloudfunctions.admin
.
事实上,您的第一个命令是使用 GCLOUD 和 sa-email 的凭据进行部署。 sa-email 必须有权在函数
上设置 IAM 策略在第二个命令中,您不再使用 sa-email 凭据,而是使用您的用户凭据,这次成功了,因为您拥有权限。
要进行调查,您可以尝试 运行 该命令
gcloud functions add-iam-policy-binding func-sa-test2 --member="allUsers" --role="roles/cloudfunctions.invoker" --impersonate-service-account sa-email
如果您没有权限,应该会失败
服务帐户不包含“cloudfunctions.functions.setIamPolicy”权限。这就是您无法在单个命令中启用标志 --allow-unauthenticated 的原因。
如果您的服务帐户具有以下角色之一(Cloud Functions Admin、Firebase Admin、Firebase Develop Admin、Firebase Extensions API Service Agent、Owner、Security Admin ) 然后您可以在单个命令中启用 --allow-unauthenticated。
在单独的命令中执行时,您可能拥有 所有者权限。所以你没有遇到任何问题。
如果需要,可以使用控制台来避免此类问题。