

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 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：//[https://gallery.ecr.aws/codebuild/amazonlinux-x86\$164-standard](https://gallery.ecr.aws/codebuild/amazonlinux-x86_64-standard) 的 CodeBuild 公有 Amazon ECR 儲存庫中提取映像：

   ```
   $ 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：//[https://gallery.ecr.aws/codebuild/local-builds](https://gallery.ecr.aws/codebuild/local-builds) 取得。

   x86\$164 版代理程式的安全雜湊演算法 (SHA) 簽章為：

   ```
   sha256:ccb19bdd7af94e4dc761e4c58c267e9455c28ec68d938086b4dc1cf8fe6b0940
   ```

   代理程式 ARM 版本的 SHA 簽章為：

   ```
   sha256:7d7b5d35d2ac4e062ae7ba8c662ffed15229a52d09bd0d664a7816c439679192
   ```

   您可以使用 SHA 來識別代理程式的版本。若要查看代理程式的 SHA 簽章，請執行下列命令，並在 下尋找 SHA`RepoDigests`：

   ```
   $ 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. 在 [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home) 開啟 Amazon SNS 主控台。

1. 在導覽列中，如果尚未選取，請將 AWS 區域變更為**美國東部 （維吉尼亞北部）**。您必須選取此 AWS 區域，因為您訂閱的 Amazon SNS 通知會在此區域中建立。

1. 在導覽窗格中，選擇**訂閱**。

1. 選擇**建立訂閱**。

1. 在**建立訂閱**中，執行下列動作：

   1. 對於 **Topic ARN** (主題 ARN)，請使用下列 Amazon Resource Name (ARN)：

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

   1. 針對**通訊協定**，選擇**電子郵件** 或**簡訊**。

   1. 針對 **Endpoint (端點)**，選擇要接收通知的位置 (電子郵件或簡訊)。輸入電子郵件或地址或電話號碼，包括區碼。

   1. 選擇**建立訂閱**。

   1. 選擇**電子郵件**以接收要求您確認訂閱的電子郵件。遵循電子郵件中的指示來完成訂閱。

      如果您不想再接收這些通知，請使用下列程序來取消訂閱。

**取消訂閱 CodeBuild 代理程式通知**

1. 在 [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home) 開啟 Amazon SNS 主控台。

1. 在導覽窗格中，選擇**訂閱**。

1. 選取訂閱，然後從 **Actions (動作)**，選擇 **Delete subscriptions (刪除訂閱)**。出現確認提示時，選擇 **Delete (刪除)**。