允许未经身份验证的参数不起作用
Allow unauthenticated parameter does not work
我正在通过 GitHub 和 Google Cloud Build 创建一个 CICD 管道,使用以下 .yaml 文件:
# Cloud Function specifications
steps:
- name: 'gcr.io/cloud-builders/gcloud'
args:
- functions
- deploy
- hello_world
- --source=./src
- --trigger-http
- --memory=1024MB
- --max-instances=5
- --runtime=python39
- --region=europe-west6
- --entry-point=predict
- --allow-unauthenticated
一切正常,功能部署正确;但是,每当我尝试调用它时,都会抛出以下错误:
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>401 Unauthorized</title>
</head>
--allow-unauthenticated 参数似乎没有正常工作。
如何公开 API 并授予 public 访问权限?
注:
如果我运行gcloud functions describe --project=XXXXXX --region=europe-west6 hello_world
我得到:
availableMemoryMb: 1024
buildId: 1234
entryPoint: predict
environmentVariables:
ABC: '"discount"'
httpsTrigger:
securityLevel: SECURE_OPTIONAL
url: https://europe-west6-XXX.cloudfunctions.net/hello_world
ingressSettings: ALLOW_ALL
labels:
deployment-tool: cli-gcloud
maxInstances: 5
name: projects/XXX/locations/europe-west6/functions/hello_world
runtime: python39
serviceAccountEmail: XXX@appspot.gserviceaccount.com
sourceUploadUrl: https://storage.googleapis.com/gcf-upload-europe-west6XXX
status: ACTIVE
timeout: 60s
updateTime: '2021-06-10T17:09:55.950Z'
versionId: '2'
使用 --allow-unauthenticated
标志修改 IAM 权限。
为确保未经授权的开发人员无法修改功能权限,正在部署该功能的用户或服务必须具有
cloudfunctions.functions.setIamPolicy
许可(如前所述 here)。
Owner 和 Cloud Functions Admin 角色均包含上述权限。因此,一旦将功能管理员角色授予 Cloud Build 服务帐户,一切正常。
请修改云构建服务账号权限,添加功能admin角色,应该可以。
我正在通过 GitHub 和 Google Cloud Build 创建一个 CICD 管道,使用以下 .yaml 文件:
# Cloud Function specifications
steps:
- name: 'gcr.io/cloud-builders/gcloud'
args:
- functions
- deploy
- hello_world
- --source=./src
- --trigger-http
- --memory=1024MB
- --max-instances=5
- --runtime=python39
- --region=europe-west6
- --entry-point=predict
- --allow-unauthenticated
一切正常,功能部署正确;但是,每当我尝试调用它时,都会抛出以下错误:
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>401 Unauthorized</title>
</head>
--allow-unauthenticated 参数似乎没有正常工作。 如何公开 API 并授予 public 访问权限?
注:
如果我运行gcloud functions describe --project=XXXXXX --region=europe-west6 hello_world
我得到:
availableMemoryMb: 1024
buildId: 1234
entryPoint: predict
environmentVariables:
ABC: '"discount"'
httpsTrigger:
securityLevel: SECURE_OPTIONAL
url: https://europe-west6-XXX.cloudfunctions.net/hello_world
ingressSettings: ALLOW_ALL
labels:
deployment-tool: cli-gcloud
maxInstances: 5
name: projects/XXX/locations/europe-west6/functions/hello_world
runtime: python39
serviceAccountEmail: XXX@appspot.gserviceaccount.com
sourceUploadUrl: https://storage.googleapis.com/gcf-upload-europe-west6XXX
status: ACTIVE
timeout: 60s
updateTime: '2021-06-10T17:09:55.950Z'
versionId: '2'
使用 --allow-unauthenticated
标志修改 IAM 权限。
为确保未经授权的开发人员无法修改功能权限,正在部署该功能的用户或服务必须具有
cloudfunctions.functions.setIamPolicy
许可(如前所述 here)。
Owner 和 Cloud Functions Admin 角色均包含上述权限。因此,一旦将功能管理员角色授予 Cloud Build 服务帐户,一切正常。
请修改云构建服务账号权限,添加功能admin角色,应该可以。