

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

# 使用 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. 选择订阅，并从**操作**中，选择**删除订阅**。请在提示您进行确认时选择**删除**。