首页 > 解决方案 > 错误: (gcloud.functions.deploy) ResponseError: status=[403], code=[Forbidden]

问题描述

基本上,我正在尝试使用我的 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什么?

标签: google-cloud-platformgoogle-cloud-functionsgoogle-cloud-build

解决方案


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

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

在此处输入图像描述


推荐阅读