错误:(gcloud.functions.deploy)ResponseError:状态= [403],代码= [禁止使用]

时间:2020-05-20 21:05:25

标签: google-cloud-platform google-cloud-functions google-cloud-build

基本上,我正在尝试使用cloudbuild.yaml文件部署云功能:

Cloudbuild.yaml

steps:
- name: 'node:10.10.0'
  id: installing_npm
  args: ['npm', 'install']
  dir: 'API/groups'
- name: 'gcr.io/cloud-builders/gcloud'
  id: deploy
  args: [
          'functions', 'deploy', 'groups', 
          '--region=us-central1',
          '--source=https://source.cloud.google.com/$PROJECT_ID/bitbucket_zebraema_/+/LCM-97_groups_API_test:API/groups', 
          '--trigger-http', 
          '--runtime=nodejs8', 
          '--entry-point=App', 
          '--allow-unauthenticated',
          '--service-account=xaxaxax@appspot.gserviceaccount.com'
        ]
  dir: 'API/groups'

以下是错误:

Step #0 - "installing_npm": npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
Step #0 - "installing_npm": 
Step #0 - "installing_npm": added 448 packages from 284 contributors and audited 449 packages in 9.697s
Step #0 - "installing_npm": found 5 low severity vulnerabilities
Step #0 - "installing_npm":   run `npm audit fix` to fix them, or `npm audit` for details
Finished Step #0 - "installing_npm"
Starting Step #1 - "deploy"
Step #1 - "deploy": Already have image (with digest): gcr.io/cloud-builders/gcloud
Step #1 - "deploy": ERROR: (gcloud.functions.deploy) ResponseError: status=[403], code=[Forbidden], message=[Permission 'cloudfunctions.functions.get' denied on resource 'projects/xxxxxxxxxxxxxxxx/locations/us-central1/functions/groups' (or resource may not exist).]
Finished Step #1 - "deploy"
ERROR
ERROR: build step 1 "gcr.io/cloud-builders/gcloud" failed: step exited with non-zero status: 1

编辑: 我已将云功能开发人员,云功能管理员,云功能服务代理和服务帐户用户角色添加到我的云构建服务帐户中。

Cloudbuild.yaml

steps:
    - name: 'node:10.10.0'
      id: installing_npm
      args: ['npm', 'install']
      dir: 'API/groups'
    - name: 'gcr.io/cloud-builders/gcloud'
      id: deploy
      args: [
              'functions', 'deploy', 'groups', 
              '--region=us-central1',
              '--source=https://source.cloud.google.com/$PROJECT_ID/bitbucket_zebraema_/+/LCM-97_groups_API_test:API/groups', 
              '--trigger-http', 
              '--runtime=nodejs8', 
              '--entry-point=App', 
              '--allow-unauthenticated',
              '--service-account=$PROJECT_ID@cloudbuild.gserviceaccount.com'
            ]
      dir: 'API/groups'

以下日志:

Step #0 - "installing_npm":   run `npm audit fix` to fix them, or `npm audit` for details
Finished Step #0 - "installing_npm"
Starting Step #1 - "deploy"
Step #1 - "deploy": Already have image (with digest): gcr.io/cloud-builders/gcloud
Step #1 - "deploy": ERROR: (gcloud.functions.deploy) ResponseError: status=[400], code=[Bad Request], message=[The request has errors
Step #1 - "deploy": Problems:
Step #1 - "deploy": source_repository_url:
Step #1 - "deploy": Source repository URL is invalid https://source.cloud.google.com/xyxyxyxyx/bitbucket_zebraema/LCM-97_groups_API_test/API/groups/src does not match the expected pattern, which is https://source.developers.google.com/projects/{PROJECT_ID}/repos/{REPOSITORY_ID}/revisions/{REVISION_ID}/paths/{PATH} or https://source.developers.google.com/projects/{PROJECT_ID}/repos/{REPOSITORY_ID}/moveable-aliases/{BRANCH_ID}/paths/{PATH} or https://source.developers.google.com/projects/{PROJECT_ID}/repos/{REPOSITORY_ID}/fixed-aliases/{TAG_ID}/paths/{PATH}. Note that PROJECT_ID, REPOSITORY_ID, REVISION_ID, BRANCH_ID, and TAG_ID can not contain '/'. PATH may contain '/'.
Step #1 - "deploy": ]
Finished Step #1 - "deploy"
ERROR
ERROR: build step 1 "gcr.io/cloud-builders/gcloud" failed: step exited with non-zero status: 1

在这里,我已将bitbucket存储库镜像到我的google cloud source repository中。写source_repository_url的正确方法是什么?

3 个答案:

答案 0 :(得分:1)

最可能的原因是未为 Cloud Functions Developer 服务启用 Cloud Build 角色。

  1. 导航到 Cloud Build > 设置
  2. 启用 Cloud Functions 开发者角色

enter image description here

答案 1 :(得分:0)

根据错误消息Permission 'cloudfunctions.functions.get' denied

也许您可以尝试将此权限授予cloudbuild默认服务帐户。

cloudbuild默认服务帐户看起来像YOUR_PROJECT_NUMBER@cloudbuild.gserviceaccount.com

答案 2 :(得分:0)

似乎您需要将“项目编辑器”角色授予您的服务帐户。