

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

# 手動執行 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：//[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 (刪除)**。

# 執行建置 (主控台)
<a name="run-build-console"></a>

若要使用 AWS CodePipeline 搭配 CodeBuild 執行組建，請略過這些步驟並遵循 中的指示[搭配 CodePipeline 使用 CodeBuild CodePipeline](how-to-create-pipeline.md)。

1. 開啟 AWS CodeBuild 主控台，網址為 [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home)：//。

1. 在導覽窗格中，選擇 **Build projects (建置專案)**。

1. 在建置專案清單中，選擇建置專案。

1. 您可以使用預設建置專案設定來執行建置，或僅覆寫此建置的建置設定。

   1. 如果您想要使用預設建置專案設定執行建置，請選擇**開始建置**。組建會立即開始。

   1. 如果您想要覆寫預設建置專案設定，請選擇**使用覆寫開始建置**。在**開始建置**頁面中，您可以覆寫下列項目：
      + **組建組態**
      + **來源**
      + **環境變數覆寫**

      如果您需要選取更多進階覆寫，請選擇**進階建置覆寫**。在此頁面上，您可以覆寫下列項目：
      + **組建組態**
      + **來源**
      + **Environment (環境)** 
      + **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
   ```

   如果您想要執行的建置使用建置輸入成品的舊版本，或者想要覆寫建置輸出成品、環境變數、buildspec 或預設建置逾時期間的設定，則請使用此命令。

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 格式化資料。將資料複製到 AWS CLI 安裝 的本機電腦或執行個體位置中的檔案 （例如 `start-build.json`)。修改複製的資料以符合下列格式，並儲存您的結果：

   ```
   {
     "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*：選用。此建置的建置輸出成品位置，可覆寫組建專案中所定義的建置輸出成品位置。
     + *路徑*：選用。此建置的建置輸出成品路徑，可覆寫組建專案中所定義的建置輸出成品路徑。
     + *namespaceType*：選用。此建置的建置輸出成品路徑類型，可覆寫組建專案中所定義的建置輸出成品路徑類型。
     + *name*：選用。此建置的建置輸出成品名稱，可覆寫組建專案中所定義的建置輸出成品名稱。
     + *封裝*：選用。此建置的建置輸出成品封裝類型，可覆寫組建專案中所定義的建置輸出成品封裝類型。
   + *buildspecOverride*：選用。此建置的 Buildspec 宣告，可覆寫建置專案中所定義的 Buildspec 宣告。如果已設定此值，它可以是內嵌 buildspec 定義，或相對於內建 `CODEBUILD_SRC_DIR` 環境變數值之替代 buildspec 檔案的路徑，或 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` 物件。`ProjectCache` 物件中需要 `location`。
     + *cacheOverride-type*：選用。此建置的 `ProjectCache` 物件類型，可覆寫組建專案中所指定的 `ProjectCache` 物件。`cacheOverride` 是選用項目，並採用 `ProjectCache` 物件。`ProjectCache` 物件中需要 `type`。
   + *certificateOverride*：選用。此建置的憑證名稱，可覆寫組建專案中所指定的憑證名稱。
   + *environmentTypeOverride*：選用。此建置的容器名稱，可覆寫組建專案中所指定的容器名稱。目前有效字串為 `LINUX_CONTAINER`。
   + 下列是 `environmentVariablesOverride` 的預留位置。
     + *environmentVariablesOverride-name*：選用。您想要針對此建置覆寫其值之組建專案中的環境變數名稱。
     + *environmentVariablesOverride-type*：選用。您想要針對此建置覆寫其值之組建專案中的環境變數類型。
     + *environmentVariablesValue*：選用。您想要針對此建置覆寫組建專案中所定義的環境變數值。
   + *gitCloneDepthOverride*：選用。您想要針對此建置覆寫其值之組建專案中的 **Git clone depth (Git 複製深度)** 值。如果您的來源類型是 Amazon S3，則不支援此值。
   + *imageOverride*：選用。此建置的映像名稱，可覆寫組建專案中所指定的映像名稱。
   + *idempotencyToken*：選用。字串，可做為指定建置請求為等冪的字符。您可以選擇長度為 64 個或更少字元的任何字串。字符在 start-build 請求後 5 分鐘內有效。如果您使用相同的字符重複 start-build 請求，但變更參數，CodeBuild 會傳回參數不相符錯誤。
   + *insecureSslOverride*：選用布林值，指定是否覆寫建置專案中所指定的不安全 TLS 設定。不安全 TLS 設定決定是否忽略連線至專案來源碼時的 TLS 警告。只有在建置的來源是 GitHub Enterprise Server 時，才會套用此覆寫。
   + *privilegedModeOverride*：選用布林值。如果設定為 true，則建置會覆寫建置專案中的特殊權限模式。
   +  *queuedTimeoutInMinutesOverride*：選用整數，指定在建置逾時之前，允許將建置排入佇列的分鐘數。其最小值為五分鐘，其最大值為 480 分鐘 (八小時)。
   + *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 參數存放區中的參數。CodeBuild 只能在 參數的名稱開頭為 `/CodeBuild/`（例如 ) 時，使用存放在 Amazon EC2 Systems Manager 參數存放區中的參數`/CodeBuild/dockerLoginPassword`。您可以使用 CodeBuild 主控台在 Amazon EC2 Systems Manager 中建立參數。選擇 **Create a parameter (建立參數)**，然後遵循指示進行。（在該對話方塊中，對於 **KMS 金鑰**，您可以選擇指定帳戶中金鑰 AWS KMS 的 ARN。 Amazon EC2 Systems Manager 會使用此金鑰在儲存期間加密參數的值，並在擷取期間解密。) 如果您使用 CodeBuild 主控台來建立參數，則主控台會在儲存參數`/CodeBuild/`時以 啟動參數。不過，如果您使用 Amazon EC2 Systems Manager 參數存放區主控台來建立參數，您必須使用 啟動參數的名稱`/CodeBuild/`，而且必須將 **Type** 設定為 **Secure String**。如需詳細資訊，請參閱《*Amazon EC2 Systems Manager 使用者指南*》中的[AWS Systems Manager 參數存放](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 參數存放區的參數，則建置專案的服務角色必須允許 `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_` 的任何環境變數。此字首保留供 內部使用。

   如果有多個位置定義同名的環境變數，則會決定環境變數的值，如下所示：
   + 開始建置操作呼叫中的值會採用最高優先順序。
   + 組建專案定義中的值會採用下一個優先順序。
   + buildspec 檔案宣告中的值會採用最低優先順序。

   如需這些預留位置有效值的資訊，請參閱[建立建置專案 (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>
   ```

   如果您想要執行的建置使用建置輸入成品的舊版本，或者想要覆寫建置輸出成品、環境變數、buildspec 或預設建置逾時期間的設定，則請使用此命令。

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 或 GitHub Enterprise Server 儲存庫中，則只要將程式碼變更推送至儲存庫，您就可以使用 GitHub Webhook AWS CodeBuild 來重建原始碼。

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

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

*<project-name>* 是包含要重建之原始碼的建置專案名稱。

針對 GitHub，則會在輸出中顯示與下列內容類似的資訊：

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

*<url>* 是 GitHub Webhook 的 URL。

針對 GitHub Enterprise Server，則會在輸出中顯示與下列內容類似的資訊：

![\[輸出資訊範例。\]](http://docs.aws.amazon.com/zh_tw/codebuild/latest/userguide/images/create-webhook-ghe.png)


1. 複製輸出中的秘密金鑰和有效負載 URL。您需要它們，才能在 GitHub Enterprise Server 中新增 Webhook。

1. 在 GitHub Enterprise Server 中，選擇儲存 CodeBuild 專案的儲存庫。依序選擇 **Settings (設定)**、**Hooks & services (關聯和服務)** 和 **Add webhook (新增 Webhook)**。

1. 輸入有效負載 URL 和秘密金鑰，並接受其他欄位的預設值，然後選擇 **Add webhook (新增 Webhook)**。

# 自動停止執行建置 (AWS CLI)
<a name="run-build-cli-auto-stop"></a>

如果您的原始碼存放在 GitHub 或 GitHub Enterprise 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 Enterprise Server 儲存庫中的 Webhook。

# 執行組建AWS SDKs)
<a name="run-build-sdks"></a>

若要使用 CodePipeline 執行組建 AWS CodeBuild，請略過這些步驟，並[使用 AWS CodeBuild 搭配 AWS CodePipeline 來測試程式碼和執行組建](how-to-create-pipeline.md)改為遵循 中的指示。

如需搭配 AWS SDKs 使用 CodeBuild 的詳細資訊，請參閱 [AWS SDKs和工具參考](sdk-ref.md)。