

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 以编程方式设置 Buildkite 运行程序
<a name="sample-runner-buildkite-CLI"></a>

要以编程方式配置 Buildkite 运行器项目，您需要配置以下资源：

**以编程方式创建 Buildkite 运行程序**

1. 创建 Buildkite 代理令牌并将该令牌以纯文本形式保存在 AWS Secrets Manager中。

1. 使用您的首选配置设置 CodeBuild 项目。您需要配置以下额外的属性：

   1. 一个环境值，其名称为 `CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN`、类型为 `SECRETS_MANAGER`，而值等于与 Buildkite 集群关联的 Buildkite 代理令牌。

   1. 等于 `NO_SOURCE` 的源类型

   1. 访问在项目服务角色中在步骤 1 中创建的密钥的权限

   例如，您可以通过 CLI 使用以下命令创建有效的 Buildkite 运行程序项目：

   ```
   aws codebuild create-project \
   --name buildkite-runner-project \
   --source "{\"type\": \"NO_SOURCE\",\"buildspec\":\"\"}" \
   --environment "{\"image\":\"aws/codebuild/amazonlinux-x86_64-standard:5.0\",\"type\":\"LINUX_CONTAINER\",\"computeType\":\"BUILD_GENERAL1_MEDIUM\",\"environmentVariables\":[{\"name\":\"CODEBUILD_CONFIG_BUILDKITE_AGENT_TOKEN\",\"type\":\"SECRETS_MANAGER\",\"value\":\"<buildkite-secret-name>\"}]}" \
   --artifacts "{\"type\": \"NO_ARTIFACTS\"}" \
   --service-role {{<service-role>}}
   ```

1. 在步骤 2 中创建的项目上创建 Buildkite 运行程序 webhook。创建 webhook 时，您需要使用以下配置选项：

   1. **build-type** 应等于 `RUNNER_BUILDKITE_BUILD`

   1. 类型为 `EVENT` 且模式等于 `WORKFLOW_JOB_QUEUED` 的筛选条件 

   例如，您可以通过 CLI 使用以下命令创建有效的 Buildkite 运行程序 webhook：

   ```
   aws codebuild create-webhook \
   --project-name buildkite-runner-project \
   --filter-groups "[[{\"type\":\"EVENT\",\"pattern\":\"WORKFLOW_JOB_QUEUED\"}]]" \
   --build-type RUNNER_BUILDKITE_BUILD
   ```

1. 保存由 `create-webhook` 调用返回的**有效载荷 URL** 和**密钥**值，然后使用凭证在 Buildkite 控制台中创建 webhook。你可以在中参考第 3 步：在 Buildkite 中创建 CodeBuild 网络挂钩，[教程：配置 CodeBuild-hosted Buildkite 运行器](sample-runner-buildkite.md)获取有关如何设置此资源的指南。