

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

# 執行 CodeBuild 的 GitHub 提取請求和 Webhook 篩選條件範例
<a name="sample-github-pull-request"></a>

AWS CodeBuild 當來源儲存庫為 GitHub 時， 支援 Webhook。這表示對於在 GitHub 儲存庫中存放其原始碼的 CodeBuild 組建專案，Webhook 可用來在每次將程式碼變更推送至儲存庫時重建原始碼。如需 CodeBuild 範例，請參閱[AWS CodeBuild 範例](https://github.com/aws-samples/aws-codebuild-samples)。

**注意**  
使用 Webhook 時，使用者可能會觸發非預期的建置。若要降低此風險，請參閱 [使用 Webhook 的最佳實務](webhooks.md#webhook-best-practices)。

**Topics**
+ [

## 步驟 1：使用 GitHub 建立建置專案並啟用 Webhook
](#sample-github-pull-request-running)
+ [

## 步驟 2：確認已啟用 Webhook
](#verification-checks)

## 步驟 1：使用 GitHub 建立建置專案並啟用 Webhook
<a name="sample-github-pull-request-running"></a>

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

1.  如果顯示 CodeBuild 資訊頁面，請選擇**建立組建專案**。否則，請在導覽窗格中展開**組**建，選擇**組建專案**，然後選擇**建立組建專案**。

1. 選擇 **Create build project (建立建置專案)**。

1. 在 **Project configuration (專案組態)** 中：  
**Project name (專案名稱)**  
輸入此建置專案的名稱。組建專案名稱在每個 AWS 帳戶中必須是唯一的。您也可以包含建置專案的選用描述，以協助其他使用者了解此專案的用途。

1. 在 **Source (來源)** 中：  
**來源提供者**  
選擇 **GitHub**。請遵循說明來與 GitHub 連線 (或重新連線)，然後選擇 **Authorize (授權)**。  
**儲存庫**  
選擇 **Repository in my GitHub account (GitHub 帳戶中的儲存庫)**。  
**GitHub 儲存庫**  
輸入 GitHub 儲存庫的 URL。

1. 在**主要來源 Webhook 事件**中，選取下列項目。
**注意**  
只有在您在上一個步驟**的 GitHub 帳戶中選擇儲存庫**時，才會顯示**主要來源 Webhook 事件**區段。

   1. 當您建立專案時，請選取 **Rebuild every time a code change is pushed to this repository (在每次將程式碼變更推送至此儲存庫時重建)**。

   1. 從 **Event type (事件類型)**，選擇一或多個事件。

   1. 若要篩選事件觸發組建的時間，請在 **Start a build under these conditions (在這些情況下開始組建)** 下新增一或多個選用的篩選條件。

   1. 若要篩選何時不觸發事件，請在 **Don't start a build under these conditions (在這些情況下不開始組建)** 下新增一或多個選用的篩選條件。

   1. 如有需要，請選擇**新增篩選條件群組**以新增另一個篩選條件群組。

   如需 GitHub Webhook 事件類型和篩選條件的詳細資訊，請參閱 [GitHub Webhook 事件](github-webhook.md)。

1. 在 **Environment (環境)** 中：  
**環境映像**  
選擇下列其中一項：    
若要使用由 管理的 Docker 映像 AWS CodeBuild：  
選擇**受管映像**，然後從**作業系統**、**執行時間**、**映像**和**映像版本**進行選擇。若可用，請從 **Environment type (環境類型)** 進行選擇。  
若要使用另一個 Docker 映像：  
選擇**自訂映像**。針對**環境類型**，選擇 **ARM**、**Linux**、**Linux GPU** 或 **Windows**。如果您選擇**其他登錄**檔，請針對**外部登錄檔 URL**，使用 格式，在 Docker Hub 中輸入 Docker 映像檔的名稱和標籤`docker repository/docker image name`。如果您選擇 **Amazon ECR**，請使用 **Amazon ECR 儲存庫**和 **Amazon ECR 映像**來選擇 AWS 帳戶中的 Docker 映像。  
若要使用私有 Docker 映像：  
選擇**自訂映像**。針對**環境類型**，選擇 **ARM**、**Linux**、**Linux GPU** 或 **Windows**。針對 **Image registry (映像登錄)** 選擇 **Other registry (其他登錄)**，然後輸入私人 Docker 映像的憑證的 ARN。登入資料必須由 Secrets Manager 建立。如需詳細資訊，請參閱*AWS Secrets Manager 《 使用者指南*》中的[什麼是 AWS Secrets Manager？](https://docs.aws.amazon.com/secretsmanager/latest/userguide/)。  
**服務角色**  
選擇下列其中一項：  
   + 如果您沒有 CodeBuild 服務角色，請選擇**新服務角色**。在**角色名稱**中，輸入新角色的名稱。
   + 如果您有 CodeBuild 服務角色，請選擇**現有服務角色**。在**角色 ARN** 中，選擇服務角色。
當您使用 主控台建立或更新組建專案時，您可以同時建立 CodeBuild 服務角色。根據預設，此角色只能與該建置專案搭配運作。如果您使用主控台將此服務角色與另一個建置專案建立關聯，則會更新此角色以與其他建置專案搭配運作。服務角色最多可以與 10 個組建專案搭配運作。

1. 在 **Buildspec** 中，執行下列其中一項操作：
   + 選擇**使用 buildspec 檔案**以使用來源碼根目錄中的 buildspec.yml 檔案。
   + 選擇**插入建置命令**以使用主控台插入建置命令。

   如需更多資訊，請參閱[Buildspec 參考](build-spec-ref.md)。

1. 在 **Artifacts (成品)** 中：  
**類型**  
選擇下列其中一項：  
   + 如果您不要建立建置輸出成品，則請選擇 **No artifacts (無成品)**。
   + 若要將建置輸出存放在 S3 儲存貯體，請選擇 **Amazon S3**，然後執行下列動作：
     + 如果您想要使用專案名稱做為組建輸出 ZIP 檔案或資料夾名稱，則請將 **Name (名稱)** 保留空白。否則請輸入名稱。根據預設，成品名稱是專案名稱。如果想使用不同的名稱，請在成品名稱方塊中輸入名稱。如果要輸出 ZIP 檔案，請包含 zip 副檔名。
     + 針對 **Bucket name (儲存貯體名稱)**，選擇輸出儲存貯體的名稱。
     + 如果您在本程序稍早選擇 **Insert build commands (插入組建命令)**，然後針對 **Output files (輸出檔案)**，輸入要放入組建輸出 ZIP 檔案或資料夾之組建中的檔案位置。針對多個位置，以逗號區隔每個位置 (例如，`appspec.yml, target/my-app.jar`)。如需詳細資訊，請參閱[Buildspec 語法](build-spec-ref.md#build-spec-ref-syntax)中的 `files` 描述。  
**其他組態**  
展開 **Additional configuration (其他組態)**，並適當地設定選項。

1. 選擇 **Create build project (建立建置專案)**。在 **Review (檢閱)** 頁面上，選擇 **Start build (開始建置)** 來執行建置。

## 步驟 2：確認已啟用 Webhook
<a name="verification-checks"></a>

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

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

1. 執行以下任意一項：
   + 選擇具有您想要驗證之 Webhook 建置專案的連結，然後選擇 **Build details (建置詳細資訊)**。
   + 選擇建置專案旁的按鈕，其中包含您要驗證的 Webhook，選擇**檢視詳細資訊**，然後選擇**建置詳細資訊**索引標籤。

1. 在**主要來源 Webhook 事件**中，選擇 **Webhook** URL 連結。

1. 在您的 GitHub 儲存庫中，在 **Settings (設定)** 頁面的 **Webhooks** 下方，確認 **Pull Requests (提取請求)** 和 **Pushes (推送)** 已選取。

1. 在您的 GitHub 設定檔設定中，在**個人設定**、**應用程式**、**授權 OAuth 應用程式**下，您應該會看到您的應用程式已獲授權存取您選取的 AWS 區域。