谷歌云函数部署“允许未经身份验证的调用......”

Rac*_*acu 10 python google-cloud-platform gcloud gcloud-python google-cloud-functions

每当我必须使用gcloudsdk部署新的 python 函数时,我都会收到此消息

允许未经身份验证的新函数 [function-name] 调用?

(是/否)?

警告:使用受限访问 IAM 策略创建的函数。要启用未经授权的访问,请考虑

“gcloud alpha 函数 add-iam-policy-binding function-name --region=europe-west1 --member=allUsers --role=roles/cloudfunctions.invoker”

是否有任何标志可以添加到命令中以使其NO在部署时成为一个?

这是我用来部署一个函数的示例命令:

gcloud functions deploy function-name --region=europe-west1 --entry-point function-entry-point --trigger-resource "projects/my-project/databases/(default)/documents/user_ids/{user_id}" --trigger-event providers/cloud.firestore/eventTypes/document.create --runtime python37 --timeout 60 --project my-project
Run Code Online (Sandbox Code Playgroud)

小智 18

我刚刚也遇到了这个问题,并发现您可以对--no-allow-unauthenticated这个问题预先回答“不”。

gcloud functions deploy MyFunction \
  --runtime=go116 --trigger-http --no-allow-unauthenticated
Run Code Online (Sandbox Code Playgroud)


Tia*_*ici 8

  1. 选择服务
  2. 单击“显示信息面板”以显示“权限”选项卡。
  3. 在添加成员字段中,allUsers
  4. 从角色中选择 Cloud Functions Invoker
  5. 添加

或者

  gcloud functions add-iam-policy-binding FUNCTION \
  --member='serviceAccount:FUNCTION_IDENTITY' \
  --role='roles/cloudfunctions.invoker'

 gcloud run services add-iam-policy-binding [SERVICE_NAME] \
    --member="allUsers" \
    --role="roles/cloudfunctions.invoker"
Run Code Online (Sandbox Code Playgroud)


Dus*_*ram 5

https://cloud.google.com/sdk/docs/scripting-gcloud#disabling_prompts

您可以通过将disable_prompts配置中的属性设置为True或使用全局--quiet-q标志来禁用来自 gcloud CLI 命令的提示。

因此,对于您的示例,您可以运行:

gcloud functions deploy function-name --quiet --region=europe-west1 --entry-point function-entry-point --trigger-resource "projects/my-project/databases/(default)/documents/user_ids/{user_id}" --trigger-event providers/cloud.firestore/eventTypes/document.create --runtime python37 --timeout 60 --project my-project
Run Code Online (Sandbox Code Playgroud)

  • 我认为这只是一种解决方法而不是解决方案。 (2认同)