在专用池中运行构建作业

本文档介绍如何在专用池中运行构建。如果您是第一次使用专用池,请参阅专用池概览

准备工作

  • 确保您已按照创建和管理专用池中的步骤创建专用池。

  • 如需使用本指南中的命令行示例,请安装并配置 Google Cloud CLI

  • 您可以使用同一 Google Cloud 项目创建专用池和 Cloud Build 构建,也可以使用不同的项目。如果您的构建与专用池位于不同的项目中,请在 gcloud CLI 中将默认项目设置为您的构建源自的项目:

    gcloud config set project BUILD_ORIGIN_PROJECT_ID
    

IAM 权限

  • 如需通过 gcloud CLI 或 Cloud Build API 运行构建,请将专用池项目中的 WorkerPool User 角色授予请求构建的用户或服务帐号。

  • 如需使用触发器运行自动构建,请执行以下操作:

    • 如果要启动构建的项目就是您的专用池所在的项目,则您无需授予任何权限。
    • 如果您开始构建的项目不是您的私有池所在的项目,请将 WorkerPool User 角色授予您创建构建的工作器池项目中的触发器项目的 Cloud Build 服务账户:

    控制台

    1. 在 Google Cloud 控制台中打开 IAM 页面。

      打开“IAM 权限”页面

    2. 在页面顶部的项目选择器下拉菜单中,选择包含您的专用池的项目。

    3. 点击授予使用权限

    4. 输入以下主账号和角色设置:

      • 添加主帐号:输入包含构建触发器的项目的默认 Cloud Build 服务帐号电子邮件地址。您可以按照以下步骤获取此电子邮件地址:

        1. 打开 IAM 页面
        2. 选择包含构建触发器的项目。
        3. 在权限表中,找到以 @cloudbuild.gserviceaccount.com 结尾的电子邮件地址。这是您的 Cloud Build 服务账号。
      • 分配角色:选择 Cloud Build WorkerPool User 角色。

    5. 点击保存以保存新的 IAM 权限。

    gcloud

    要将触发器项目中的默认 Cloud Build 服务帐号添加到使用 cloudbuild.workerPoolUser 角色的工作器池项目,请执行以下操作

      gcloud projects add-iam-policy-binding PRIVATEPOOL_PROJECT_ID \
          --member=serviceAccount:TRIGGER_PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
          --role=roles/cloudbuild.workerPoolUser
    

    将上述命令中的占位值替换为以下内容:

    • PRIVATEPOOL_PROJECT_ID 是运行构建的专用池的项目 ID。
    • TRIGGER_PROJECT_NUMBER 是含有执行构建的触发器的项目的项目编号。

运行构建

您可以从创建专用池的同一 Google Cloud 项目提交构建,也可以提交来自其他 Google Cloud 项目的构建。您可以在构建配置文件中指定专用池,也可以在 gcloud 命令中直接指定:

在构建配置文件中指定专用池

  1. Cloud Build 配置文件中,添加 pool 选项并指定用于运行构建的专用池的完整资源名称:

    YAML

    steps:
    - name: 'bash'
      args: ['echo', 'I am running in a private pool!']
    options:
      pool:
        name: 'projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID'
    

    JSON

    {
      "steps": [
      {
        "name": "bash",
        "args": [
          "echo",
          "I am running in a private pool!"
        ]
      }
      ],
      "options": {
        "pool" : {
          "name" : "projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID"
        }
      }
    }
    

    将上述配置文件中的占位符值替换为以下内容:

    • PRIVATEPOOL_PROJECT_ID:您的专用池所在的 Google Cloud 项目。
    • REGION:创建了专用池的区域。
    • PRIVATEPOOL_ID:您在创建专用池时指定的唯一专用池 ID。
  2. 使用上面创建的构建配置文件通过 gcloud 或 API 或使用触发器运行构建。 如果您的实例托管在本地,则 Cloud Build 还会为多个外部源代码管理系统(例如 GitHub EnterpriseBitbucket Server)提供触发器功能支持。

在 gcloud 命令中指定专用池

您可以在 gcloud 命令(而不是构建配置文件)中指定专用池。例如,假设您有以下构建配置文件:

YAML

  steps:
  - name: 'bash'
    args: ['echo', 'I am running in a private pool!']

JSON

  {
    "steps": [
    {
      "name": "bash",
      "args": [
        "echo",
        "I am running in a private pool!"
      ]
    }
    ],
  }

以下命令使用构建配置文件进行构建,并在该命令中指定工作器池:

gcloud builds submit --config=CONFIG_FILE
  --worker-pool=projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID

将上述命令中的占位值替换为以下内容:

  • CONFIG_FILE:构建配置文件的路径。
  • PRIVATEPOOL_ID:您在创建专用池时指定的唯一专用池 ID。
  • PRIVATEPOOL_PROJECT_ID:您的专用池所在的 Google Cloud 项目。
  • REGION:创建了专用池的区域。

后续步骤