【问题标题】:Deploying Google Cloud function from a Google Build从 Google Build 部署 Google Cloud 功能
【发布时间】:2019-06-06 17:09:51
【问题描述】:

在尝试部署一个简单的功能时,我遇到了 403 错误。这是我的完整 yaml:

steps:
# Install Dependencies
- name: 'python'
  id: Pip install
  args: ['pip3', 'install', '-r', 'requirements.txt', '--user']
# Run Tests
- name: 'python'
  args: ['python3', '-m', 'pytest', 'functions/folder_a/test/']
# Deploy Cloud Functions
- name: 'gcr.io/cloud-builders/gcloud'
  id: 'helloFunction'
  args: ['functions', 'deploy', 'hello', '--source' , 'functions/folder_a/main.py',
           '--runtime' , 'python37' ,'--trigger-http']

第一步完成得很好,但是第二步出错了。

$ gcloud info

Account: [projectname@appspot.gserviceaccount.com]
Project: [projectname]

Current Properties:
  [core]
    project: [projectname]
    account: [projectname@appspot.gserviceaccount.com]
    disable_usage_reporting: [True]

我尝试在 IAM 中为上述帐户添加以下权限:

  • 云构建服务代理
  • 云功能开发人员
  • 云功能服务代理
  • 编辑器

当 Google Build 运行时,它使用的是哪个服务帐户?如何更改权限以允许自动部署功能?

【问题讨论】:

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


    【解决方案1】:

    使用 Cloud Build 部署 Cloud Functions 记录在 https://cloud.google.com/functions/docs/bestpractices/testing#continuous_testing_and_deployment

    从该页面的指导是:

    • 要部署 Cloud Functions,您可能需要将 Cloud Functions 开发人员角色分配给 Cloud Build 服务帐号 (PROJECT_NUMBER@cloudbuild.gserviceaccount.com)。
    • 如果您使用 Cloud Functions 开发人员角色,您还需要向 Cloud Functions Runtime 服务帐户 (PROJECT_ID@appspot.gserviceaccount.com) 授予 IAM Service Account User role

    Cloud Build 服务帐户是 PROJECT_NUMBER@cloudbuild.gserviceaccount.com,如果您在控制台中查找它,只会有一个 *@cloudbuild* 服务帐户

    【讨论】:

      猜你喜欢
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-14
      • 2019-12-28
      • 1970-01-01
      • 1970-01-01
      • 2018-05-18
      相关资源
      最近更新 更多