

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

# 手动运行 AWS CodeBuild 构建
<a name="run-build"></a>

您可以使用 AWS CodeBuild 控制台 AWS CLI、或 AWS SDKs 来运行内部版本 CodeBuild。

**Topics**
+ [使用 AWS CodeBuild 代理在本地运行构建](use-codebuild-agent.md)
+ [运行构建（控制台）](run-build-console.md)
+ [运行构建 (AWS CLI)](run-build-cli.md)
+ [运行批量构建 (AWS CLI)](run-batch-build-cli.md)
+ [开始自动运行构建（AWS CLI）](run-build-cli-auto-start.md)
+ [停止自动运行构建（AWS CLI）](run-build-cli-auto-stop.md)
+ [运行构建 (AWS SDKs)](run-build-sdks.md)

# 使用 AWS CodeBuild 代理在本地运行构建
<a name="use-codebuild-agent"></a>

您可以使用 AWS CodeBuild 代理在本地计算机上运行 CodeBuild 构建。有适用于 x86\$164 和 ARM 平台的代理。

您还可以进行订阅，这样便能在发布代理的新版本时收到通知。

## 先决条件
<a name="use-codebuild-agent.prerequisites"></a>

在开始之前，您需要执行以下操作：
+ 在本地计算机上安装 Git。
+ 在本地计算机上安装和设置 [Docker](https://www.docker.com/)。

## 设置构建映像
<a name="use-codebuild-agent.setup-image"></a>

您只需要在首次运行代理时或映像发生更改时设置构建映像。

**设置构建映像**

1. [如果你想使用精心策划的 Amazon Linux 2 镜像，你可以从 https://gallery.ecr 的亚马逊 ECR CodeBuild 公共存储库中提取它。 aws/codebuild/amazonlinux-x86\$164-standard，使用以下命令](https://gallery.ecr.aws/codebuild/amazonlinux-x86_64-standard)：

   ```
   $ docker pull public.ecr.aws/codebuild/amazonlinux-x86_64-standard:4.0
   ```

   或者，如果要使用另一个 Linux 映像，请执行以下步骤：

   1. 克隆 CodeBuild 镜像存储库：

      ```
      $ git clone https://github.com/aws/aws-codebuild-docker-images.git
      ```

   1. 切换到该映像目录。本示例使用 `aws/codebuild/standard:5.0` 映像：

      ```
      $ cd aws-codebuild-docker-images/ubuntu/standard/5.0
      ```

   1. 构建映像。这将需要花几分钟的时间。

      ```
      $ docker build -t aws/codebuild/standard:5.0 .
      ```

1. 下载代 CodeBuild 理。

   要下载 x86\$164 版本代理，请运行以下命令：

   ```
   $ docker pull public.ecr.aws/codebuild/local-builds:latest
   ```

   要下载 ARM 版本代理，请运行以下命令：

   ```
   $ docker pull public.ecr.aws/codebuild/local-builds:aarch64
   ```

1. <a name="codebuild-agent-sha"></a>该 CodeBuild 代理可从 [https://gallery.ecr 获得。 aws/codebuild/local-构建](https://gallery.ecr.aws/codebuild/local-builds)。

   x86\$164 版本代理的安全哈希算法（SHA）签名为：

   ```
   sha256:ccb19bdd7af94e4dc761e4c58c267e9455c28ec68d938086b4dc1cf8fe6b0940
   ```

   ARM 版本代理的 SHA 签名为：

   ```
   sha256:7d7b5d35d2ac4e062ae7ba8c662ffed15229a52d09bd0d664a7816c439679192
   ```

   您可以通过此 SHA 识别代理的版本。要查看代理的 SHA 签名，请运行以下命令并在 `RepoDigests` 下查找 SHA：

   ```
   $ docker inspect public.ecr.aws/codebuild/local-builds:latest
   ```

## 运行代 CodeBuild 理
<a name="use-codebuild-agent.run-agent"></a>

**运行代 CodeBuild 理**

1. 请切换到包含构建项目源的目录。

1. 下载 [codebuild\$1build.sh](https://github.com/aws/aws-codebuild-docker-images/blob/master/local_builds/codebuild_build.sh) 脚本：

   ```
   $ curl -O  https://raw.githubusercontent.com/aws/aws-codebuild-docker-images/master/local_builds/codebuild_build.sh
   $ chmod +x codebuild_build.sh
   ```

1. 运行 `codebuild_build.sh` 脚本并指定容器映像和输出目录。

   要运行 x86\$164 构建，请运行以下命令：

   ```
   $ ./codebuild_build.sh -i <container-image> -a <output directory>
   ```

   要运行 ARM 构建，请运行以下命令：

   ```
   $ ./codebuild_build.sh -i <container-image> -a <output directory> -l public.ecr.aws/codebuild/local-builds:aarch64
   ```

   *<container-image>*替换为容器镜像的名称，例如`aws/codebuild/standard:5.0`或`public.ecr.aws/codebuild/amazonlinux-x86_64-standard:4.0`。

   该脚本启动构建映像，并在当前目录中的项目上运行构建。要指定构建项目的位置，请在脚本命令中添加 `-s <build project directory>` 选项。

## 接收有关新 CodeBuild 代理版本的通知
<a name="receive-codebuild-agent-notifications"></a>

您可以订阅 Amazon SNS 通知，以便在 AWS CodeBuild 代理发布新版本时收到通知。

**订阅 CodeBuild 代理通知**

1. [在 v3/home 上打开亚马逊 SNS 控制台。https://console.aws.amazon.com/sns/](https://console.aws.amazon.com/sns/v3/home)

1. 在导航栏中，如果尚未选择 AWS 该区域，则将其更改为**美国东部（弗吉尼亚北部）**。您必须选择此 AWS 区域，因为您订阅的 Amazon SNS 通知是在该区域创建的。

1. 在导航窗格中，选择**订阅**。

1. 选择**创建订阅**。

1. 在**创建订阅**中，请执行以下操作：

   1. 对于**主题 ARN**，请使用以下 Amazon 资源名称（ARN）：

      ```
      arn:aws:sns:us-east-1:850632864840:AWS-CodeBuild-Local-Agent-Updates
      ```

   1. 对于**协议**，选择**电子邮件**或 **SMS**。

   1. 对于**端点**，选择要接收通知的位置（电子邮件或 SMS）。输入电子邮件、地址或电话号码，包括区号。

   1. 选择**创建订阅**。

   1. 选择**电子邮件**，可接收要求确认订阅的电子邮件。按照电子邮件中的指示完成订阅。

      如果您不希望再收到这些通知，请通过以下步骤取消订阅。

**取消订阅 CodeBuild 代理通知**

1. [在 v3/home 上打开亚马逊 SNS 控制台。https://console.aws.amazon.com/sns/](https://console.aws.amazon.com/sns/v3/home)

1. 在导航窗格中，选择**订阅**。

1. 选择订阅，并从**操作**中，选择**删除订阅**。请在提示您进行确认时选择**删除**。

# 运行构建（控制台）
<a name="run-build-console"></a>

要使用 AWS CodePipeline 运行 CodeBuild 中的构建，可跳过这些步骤并按照[ CodeBuild 搭配使用 CodePipeline](how-to-create-pipeline.md)中的说明操作。

1. 从 [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) 打开 AWS CodeBuild 控制台。

1. 在导航窗格中，选择**构建项目**。

1. 在构建项目列表中，选择构建项目。

1. 您可以使用默认的构建项目设置运行构建，也可以仅覆盖此构建的构建设置。

   1. 如果要使用默认的构建项目设置运行构建，请选择**启动构建**。构建会立即开始。

   1. 如果要覆盖默认构建项目设置，请选择**使用覆盖启动构建**。在**启动构建**页面中，您可以覆盖以下内容：
      + **构建配置**
      + **源**：
      + **环境变量覆盖**

      如果您需要选择更为高级的覆盖，请选择**高级构建覆盖**。在该页面中，您可以覆盖以下内容：
      + **构建配置**
      + **源**：
      + **环境**
      + **Buildspec**
      + **构件**
      + **日志**：

      做出覆盖选择后，选择**启动构建**。

有关此构建的详细信息，请参阅[查看构建详细信息（控制台）](view-build-details.md#view-build-details-console)。

# 运行构建 (AWS CLI)
<a name="run-build-cli"></a>

**注意**  
要使用 CodePipeline 运行 AWS CodeBuild 中的构建项目，可跳过这些步骤并按照[创建使用 CodeBuild (AWS CLI) 的管道](how-to-create-pipeline-cli.md)中的说明操作。  
有关将 AWS CLI 与 CodeBuild 结合使用的更多信息，请参阅[命令行参考](cmd-ref.md)。

1. 使用以下方法之一运行 `start-build` 命令：

   ```
   aws codebuild start-build --project-name <project-name>
   ```

   如果您要运行的构建项目使用的是最新版本的构建输入项目和构建项目现有设置，请使用此方法。

   ```
   aws codebuild start-build --generate-cli-skeleton
   ```

   如果您要运行的构建具有早期版本的构建输入项目，或者如果您要覆盖构建输出项目、环境变量、构建规范或默认构建超时期限的设置，请使用此方法。

1. 如果您运行具有 `--project-name` 选项的 **start-build** 命令，请将 *<project-name>* 替换为构建项目的名称，然后跳至此过程中的第 6 步。要获取构建项目的列表，请参阅[查看构建项目名称](view-project-list.md)。

1. 如果您运行带 `--idempotency-token` 选项的 **start-build** 命令，则 `start-build` 请求将附带区分大小写的唯一标识符或令牌。令牌在发出请求后的 5 分钟内有效。如果您重复发出带相同令牌的 `start-build` 请求，但更改了参数，则 CodeBuild 会返回“参数不匹配”错误。

1. 如果您运行具有 **start-build** 选项的 `--generate-cli-skeleton` 命令，则采用 JSON 格式的数据将出现在输出中。将数据复制到本地计算机上或安装 `start-build.json` 的实例上某位置处的文件（如 AWS CLI）中。修改所复制的数据，使其符合以下格式，然后保存结果：

   ```
   {
     "projectName": "projectName",
     "sourceVersion": "sourceVersion",
     "artifactsOverride": {
       "type": "type",
       "location": "location",
       "path": "path",
       "namespaceType": "namespaceType",
       "name": "artifactsOverride-name",
       "packaging": "packaging"
     },
     "buildspecOverride": "buildspecOverride",
     "cacheOverride": {
       "location": "cacheOverride-location",
       "type": "cacheOverride-type"
     },
     "certificateOverride": "certificateOverride",
     "computeTypeOverride": "computeTypeOverride",
     "environmentTypeOverride": "environmentTypeOverride",
     "environmentVariablesOverride": {
       "name": "environmentVariablesOverride-name",
       "value": "environmentVariablesValue",
       "type": "environmentVariablesOverride-type"
     },
     "gitCloneDepthOverride": "gitCloneDepthOverride",
     "imageOverride": "imageOverride",
     "idempotencyToken": "idempotencyToken",
     "insecureSslOverride": "insecureSslOverride",
     "privilegedModeOverride": "privilegedModeOverride",
     "queuedTimeoutInMinutesOverride": "queuedTimeoutInMinutesOverride",
     "reportBuildStatusOverride": "reportBuildStatusOverride",
     "timeoutInMinutesOverride": "timeoutInMinutesOverride",
     "sourceAuthOverride": "sourceAuthOverride",
     "sourceLocationOverride": "sourceLocationOverride",
     "serviceRoleOverride": "serviceRoleOverride",
     "sourceTypeOverride": "sourceTypeOverride"
   }
   ```

   替换以下占位符：
   + *projectName*：必需的字符串。用于此构建项目的构建项目名称。
   + *sourceVersion*：可选字符串。要构建的源代码版本，如下所示：
     + 对于 Amazon S3，与您需要构建的输入 ZIP 文件的版本相对应的版本 ID。如果未指定 *sourceVersion*，则将使用最新版本。
     + 对于 CodeCommit，与您需要构建的源代码版本相对应的提交 ID。如果未指定 *sourceVersion*，则将使用分支的 HEAD 提交 ID。（您无法指定 *sourceVersion* 标签名称，但您可以指定标签提交 ID。）
     + 对于 GitHub，为提交 ID、拉取请求 ID、分支名称或与您要构建的源代码版本相对应的标签名称。如果指定了拉取请求 ID，则必须使用格式 `pr/pull-request-ID`（例如，`pr/25`）。如果指定了分支名称，则将使用分支的 HEAD 提交 ID。如果未指定 *sourceVersion*，则将使用分支的 HEAD 提交 ID。
     + 对于 Bitbucket，为提交 ID、分支名称或与您要构建的源代码版本相对应的标签名称。如果指定了分支名称，则将使用分支的 HEAD 提交 ID。如果未指定 *sourceVersion*，则将使用分支的 HEAD 提交 ID。
   + 以下占位符适用于 `artifactsOverride`。
     + *type*：可选。构建项目中定义覆盖此构建项目的构建输出项目类型。
     + *location*：可选。构建项目中定义覆盖此构建项目的构建输出项目位置。
     + *path*：可选。构建项目中定义覆盖此构建项目的构建输出项目路径。
     + *namespaceType*：可选。构建项目中定义覆盖此构建项目的构建输出项目路径类型。
     + *name*：可选。构建项目中定义覆盖此构建项目的构建输出项目名称。
     + *packaging*：可选。构建项目中定义覆盖此构建项目的构建输出项目打包类型。
   + *buildspecOverride*：可选。构建项目中定义覆盖此构建项目的构建规范声明。如果设置了该值，则它可以是内联构建规范定义，也可以是指向相对于内置 `CODEBUILD_SRC_DIR` 环境变量的值的替代构建规范文件的路径，或者是指向 S3 存储桶的路径。S3 存储桶必须与构建项目位于同一 AWS 区域中。使用其 ARN 指定 buildspec 文件（例如，`arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml`）。如果此值未提供或设置为空字符串，源代码必须在其根目录中包含 `buildspec.yml` 文件。有关更多信息，请参阅 [buildspec 文件名称和存储位置](build-spec-ref.md#build-spec-ref-name-storage)。
   + 以下占位符适用于 `cacheOverride`。
     + *cacheOverride-location*：可选。此构建的 `ProjectCache` 对象的位置，该对象将覆盖构建项目中指定的 `ProjectCache` 对象。`cacheOverride` 是可选的，它采用 `ProjectCache` 对象。`location` 在 `ProjectCache` 对象中是必需的。
     + *cacheOverride-type*：可选。此构建的 `ProjectCache` 对象的类型，该对象将覆盖构建项目中指定的 `ProjectCache` 对象。`cacheOverride` 是可选的，它采用 `ProjectCache` 对象。`type` 在 `ProjectCache` 对象中是必需的。
   + *certificateOverride*：可选。此构建的证书的名称，该证书将覆盖构建项目中指定的证书。
   + *environmentTypeOverride*：可选。此构建的容器类型，该容器类型将覆盖构建项目中指定的容器类型。当前的有效字符串为 `LINUX_CONTAINER`。
   + 以下占位符适用于 `environmentVariablesOverride`。
     + *environmentVariablesOverride-name*：可选。构建项目中的环境变量名称，其值将会覆盖此构建项目中的相应值。
     + *environmentVariablesOverride-type*：可选。构建项目中的环境变量类型，其值将会覆盖此构建项目中的相应值。
     + *environmentVariablesValue*：可选。构建项目中定义的环境变量值，其值将会覆盖此构建项目中的相应值。
   + *gitCloneDepthOverride*：可选。构建项目中 **Git 克隆深度**的值，您希望此构建项目会覆盖其值。如果您的源类型是 Amazon S3，则不支持此值。
   + *imageOverride*：可选。此构建的映像的名称，该映像将覆盖构建项目中指定的映像。
   + *idempotencyToken*：可选。一个字符串，该字符串用作令牌来指定构建请求是幂等的。您可以选择任何包含 64 个或更少字符的字符串。令牌在发出 start-build 请求后的 5 分钟内有效。如果您重复发出带相同令牌的 start-build 请求，但更改了参数，则 CodeBuild 会返回“参数不匹配”错误。
   + *insecureSslOverride*：可选的布尔值，该值指定是否覆盖构建项目中指定的不安全的 TLS 设置。不安全的 TLS 设置确定是否忽略 TLS 警告，并连接到项目源代码。此覆盖仅在构建的源为 GitHub Enterprise Server 时适用。
   + *privilegedModeOverride*：可选的布尔值。如果设置为 true，则构建将覆盖构建项目中的特权模式。
   +  *queuedTimeoutInMinutesOverride*：可选整数，用于指定在超时前允许构建排队的分钟数。最小值为 5 分钟，最大值为 480 分钟（8 个小时）。
   + *reportBuildStatusOverride*：可选布尔值，指定是否向源提供商发送构建的开始和完成状态。如果使用源提供商而非 GitHub、GitHub Enterprise Server 或 Bitbucket 设置此项，则会引发 invalidInputException。
   + *sourceAuthOverride*：可选字符串。此构建的授权类型，该授权类型将覆盖构建项目中定义的授权类型。此覆盖仅在构建项目的源为 Bitbucket 或 GitHub 时适用。
   + *sourceLocationOverride*：可选字符串。此构建的源位置，该源位置将覆盖构建项目中定义的源位置。
   + *serviceRoleOverride*：可选字符串。此构建的服务角色的名称，该角色将覆盖构建项目中指定的角色。
   + *sourceTypeOverride*：可选字符串。此构建的源输入类型，该源输入将覆盖构建项目中定义的源输入。有效字符串包括：`NO_SOURCE`、`CODECOMMIT`、`CODEPIPELINE`、`GITHUB`、`S3`、`BITBUCKET` 和 `GITHUB_ENTERPRISE`。
   + *timeoutInMinutesOverride*：可选的编号。构建项目中定义覆盖此构建项目的构建超时分钟数。

   我们建议您将具有敏感值（例如 AWS 访问密钥 ID、AWS 秘密访问密钥或密码）的环境变量作为参数存储在 Amazon EC2 Systems Manager Parameter Store 中。如果 Amazon EC2 Systems Manager Parameter Store 中存储的参数的名称以 `/CodeBuild/` 开头 (例如，`/CodeBuild/dockerLoginPassword`)，则 CodeBuild 可以使用该参数。您可以使用 CodeBuild 控制台在 Amazon EC2 Systems Manager 中创建参数。选择**创建参数**，然后按照说明操作。（在该对话框中，对于 **KMS 密钥**，您可以选择性指定您账户中的 AWS KMS 密钥的 ARN。Amazon EC2 Systems Manager 使用此密钥在存储过程中加密参数的值并在检索过程中解密参数的值。） 如果您使用 CodeBuild 控制台创建参数，控制台将在参数被存储时以 `/CodeBuild/` 作为它的开头。但是，如果您使用 Amazon EC2 Systems Manager Parameter Store 控制台创建参数，则必须使用以 `/CodeBuild/` 开头的参数名称，且必须将**类型**设置为**安全字符串**。有关更多信息，请参阅《Amazon EC2 Systems Manager 用户指南》中的 [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) 和[演练：创建和测试参数（控制台）](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-console.html)。

   如果您的构建项目引用了 Amazon EC2 Systems Manager Parameter Store 中存储的参数，则构建项目的服务角色必须允许 `ssm:GetParameters` 操作。如果您之前选择了**在账户中创建新服务角色**，则 CodeBuild 将自动在您的构建项目的默认服务角色中包含此操作。但是，如果您选择了 **Choose an existing service role from your account**，则必须将此操作单独包含在您的服务角色中。

   您设置的环境变量将替换现有的环境变量。例如，如果 Docker 映像已经包含一个名为 `MY_VAR` 的环境变量（值为 `my_value`），并且您设置了一个名为 `MY_VAR` 的环境变量（值为 `other_value`），那么 `my_value` 将被替换为 `other_value`。同样，如果 Docker 映像已经包含一个名为 `PATH` 的环境变量（值为 `/usr/local/sbin:/usr/local/bin`），并且您设置了一个名为 `PATH` 的环境变量（值为 `$PATH:/usr/share/ant/bin`），那么`/usr/local/sbin:/usr/local/bin` 将被替换为文本值 `$PATH:/usr/share/ant/bin`。

   请勿使用以 `CODEBUILD_` 打头的名称设置任何环境变量。此前缀是专为内部使用预留的。

   如果具有相同名称的环境变量在多处都有定义，则将按照如下方式确定环境变量的值：
   + 构建操作调用开始时的值优先级最高。
   + 构建项目定义中的值优先级次之。
   + 构建规范文件声明中的值优先级最低。

   有关这些占位符的有效值的信息，请参阅[创建构建项目 (AWS CLI)](create-project.md#create-project-cli)。有关构建项目的最新设置列表，请参阅[查看构建项目详细信息](view-project-details.md)。

1. 切换到包含您刚才保存的文件的目录，然后再次运行 `start-build` 命令。

   ```
   aws codebuild start-build --cli-input-json file://start-build.json
   ```

1. 如果成功，与[运行构建](getting-started-overview.md#getting-started-run-build-cli) 过程中所述内容类似的数据将出现在输出中。

要了解有关此构建项目的详细信息，请记下输出中的 `id` 值，然后查看[查看构建详细信息（AWS CLI）](view-build-details.md#view-build-details-cli)。

# 运行批量构建 (AWS CLI)
<a name="run-batch-build-cli"></a>

1. 使用以下方法之一运行 `start-build-batch` 命令：

   ```
   aws codebuild start-build-batch --project-name <project-name>
   ```

   如果您要运行的构建项目使用的是最新版本的构建输入项目和构建项目现有设置，请使用此方法。

   ```
   aws codebuild start-build-batch --generate-cli-skeleton > <json-file>
   ```

   如果您要运行的构建具有早期版本的构建输入项目，或者如果您要覆盖构建输出项目、环境变量、构建规范或默认构建超时期限的设置，请使用此方法。

1. 如果您运行具有 `--project-name` 选项的 **start-build-batch** 命令，请将 *<project-name>* 替换为构建项目的名称，然后跳至此过程中的第 6 步。要获取构建项目的列表，请参阅[查看构建项目名称](view-project-list.md)。

1. 如果您运行带 `--idempotency-token` 选项的 **start-build-batch** 命令，则 `start-build-batch` 请求将附带唯一的区分大小写的标识符或令牌。令牌在发出请求后的 5 分钟内有效。如果您重复发出带相同令牌的 `start-build-batch` 请求，但更改了参数，则 CodeBuild 会返回“参数不匹配”错误。

1. 如果您运行具有 `--generate-cli-skeleton` 选项的 **start-build-batch** 命令，则会将采用 JSON 格式的数据输出到 *<json-file>* 文件。此文件与 **start-build** 命令生成的骨架类似，但增加了以下对象。有关常见对象的更多信息，请参阅[运行构建 (AWS CLI)](run-build-cli.md)。

   修改此文件以添加任何构建覆盖，并保存结果。

   ```
     "buildBatchConfigOverride": {
       "combineArtifacts": combineArtifacts,
       "restrictions": {
         "computeTypesAllowed": [
           allowedComputeTypes
         ],
         "maximumBuildsAllowed": maximumBuildsAllowed
       },
       "serviceRole": "batchServiceRole",
       "timeoutInMins": batchTimeout
     }
   ```

   `buildBatchConfigOverride` 对象采用 [ProjectBuildBatchConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectBuildBatchConfig.html) 结构，其中包含该构建的批量构建配置覆盖。  
*combineArtifacts*  
指定批量构建的构建构件是否应合并到单个构件位置的布尔值。  
*allowedComputeTypes*  
一组字符串，用于指定批量构建允许的计算类型。请参阅[构建环境计算类型](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html)以了解这些值。  
*maximumBuildsAllowed*  
指定允许的最大构建数。  
*batchServiceRole*  
为批量构建项目指定服务角色 ARN。  
*batchTimeout*  
指定必须完成批量构建的最长时间（以分钟为单位）。

1. 切换到包含您刚才保存的文件的目录，然后再次运行 `start-build-batch` 命令。

   ```
   aws codebuild start-build-batch --cli-input-json file://start-build.json
   ```

1. 如果成功，[BuildBatch](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_BuildBatch.html) 对象的 JSON 表示形式将显示在控制台输出中。有关此数据的示例，请参阅 [StartBuildBatch 响应语法](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_StartBuildBatch.html#API_StartBuildBatch_ResponseSyntax)。

# 开始自动运行构建（AWS CLI）
<a name="run-build-cli-auto-start"></a>

如果您的源代码存储在 GitHub 或 E GitHub nterprise Server 存储库中，则每当将代码更改推送到存储库时，都可以使用 GitHub webhook 来 AWS CodeBuild 重新生成源代码。

运行 **create-webhook** 命令，如下所示：

```
aws codebuild create-webhook --project-name <project-name>
```

*<project-name>*是包含要重建的源代码的生成项目的名称。

对于 GitHub，输出中会显示类似以下内容的信息：

```
{
  "webhook": {
    "url": "<url>"
  }
}
```

*<url>*是 GitHub webhook 的网址。

对于 GitHub 企业服务器，输出中会显示类似以下内容的信息：

![\[示例输出信息。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/create-webhook-ghe.png)


1. 从输出中复制私有密钥和负载 URL。你需要它们在 GitHub 企业服务器中添加 webhook。

1. 在 GitHub 企业服务器中，选择存储 CodeBuild 项目的存储库。选择**设置**，选择**挂钩和服务**，然后选择**添加 webhook**。

1. 输入负载 URL 和私有密钥，接受其他字段的默认值，然后选择**添加 webhook**。

# 停止自动运行构建（AWS CLI）
<a name="run-build-cli-auto-stop"></a>

如果您的源代码存储在 GitHub 或 E GitHub nterprise Server 存储库中，则可以将 GitHub webhook 设置为在将代码更改推送到存储库时 AWS CodeBuild 重新生成源代码。有关更多信息，请参阅 [开始自动运行构建（AWS CLI）](run-build-cli-auto-start.md)。

如果您已启用了此行为，则可以通过运行 `delete-webhook` 命令将其关闭，如下所示：

```
aws codebuild delete-webhook --project-name <project-name>
```
+ 其中，*<project-name>*是包含要重建的源代码的构建项目的名称。

如果此命令成功，则输出中不会出现任何信息和错误。

**注意**  
这只会从您的 CodeBuild 项目中删除 webhook。您还应该从您的存储库 GitHub 或 GitHub 企业服务器存储库中删除 webhook。

# 运行构建 (AWS SDKs)
<a name="run-build-sdks"></a>

 CodePipeline 要使用运行构建 AWS CodeBuild，请跳过这些步骤，[AWS CodeBuild 与一起使用 AWS CodePipeline 来测试代码和运行构建](how-to-create-pipeline.md)改为按照中的说明进行操作。

有关 CodeBuild 与一起使用的信息 AWS SDKs，请参阅[AWS SDKs 和工具参考](sdk-ref.md)。