運行「比特桶拉請求和網絡鉤子過濾器」示例 CodeBuild - AWS CodeBuild

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

運行「比特桶拉請求和網絡鉤子過濾器」示例 CodeBuild

AWS CodeBuild 當源存儲庫是比特桶時支持網絡掛鉤。這意味著對於將其源代碼存儲在 Bitbucket 存儲庫中的 CodeBuild 構建項目,每次將代碼更改推送到存儲庫時,都可以使用 webhook 來重建源代碼。如需詳細資訊,請參閱Bitbucket Webhook 事件

此範例示範如何使用 Bitbucket 儲存庫建立提取請求。它還向您展示瞭如何使用 Bitbucket webhook CodeBuild 來觸發創建項目的構建。

注意

使用 Webhook 時,用戶可能會觸發意外的構建。若要降低此風險,請參閱使用 Webhook 的最佳實務

必要條件

要運行此示例,您必須將 AWS CodeBuild 項目與您的 Bitbucket 帳戶連接起來。

注意

CodeBuild 已經更新了它的權限與比特桶。如果您之前將項目連接到 Bitbucket,現在收到 Bitbucket 連接錯誤,則必須重新連接以授予管理 Webhook 的 CodeBuild 權限。

第 1 步:使用 Bitbucket 創建一個構建項目並啟用網絡掛鉤

以下步驟描述了如何使用 Bitbucket 作為源存儲庫創建 AWS CodeBuild 項目並啟用 Webhook。

  1. https://console.aws.amazon.com/codesuite/代碼生成/家中打開 AWS CodeBuild 控制台。

  2. 如果顯示 CodeBuild 資訊頁,請選擇 [建立組建專案]。否則,在瀏覽窗格中,展開 [組建],選擇 [建置專案],然後選擇 [建立組建專案]。

  3. 選擇 Create build project (建立建置專案)

  4. Project configuration (專案組態) 中:

    Project name (專案名稱)

    輸入此組建專案的名稱。每個 AWS 帳戶的組建專案名稱必須是唯一的。您還可以包括構建項目的可選描述,以幫助其他用戶了解該項目的用途。

  5. Source (來源) 中:

    來源提供者

    選擇比特桶。按照說明與 Bitbucket 連接(或重新連接),然後選擇授權

    儲存庫

    在我的 Bitbucket 帳戶中選擇存儲庫

    如果您之前沒有連接到您的 Bitbucket 帳戶,請輸入您的 Bitbucket 用戶名和應用程序密碼,然後選擇保存 Bit bucket 憑據。

    比特桶存儲庫

    輸入您URL的比特桶存儲庫。

  6. 主要來源 Webhook 事件中,選取下列項目。

    注意

    僅當您在上一步中選擇了 Bitbucket 帳戶中的存儲庫時,主要源 webhook 事件部分才可見。

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

    2. Event type (事件類型),選擇一或多個事件。

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

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

    5. 如有需要,請選擇「新增過濾器群組」以新增其他過濾器群組

    如需 Bitbucket Webhook 事件類型和篩選器的詳細資訊,請參閱。Bitbucket Webhook 事件

  7. Environment (環境) 中:

    環境影像

    選擇下列其中一項:

    若要使用由 AWS CodeBuild下列項目管理的 Docker 映像檔:

    選擇 [受管理的映像檔],然後從 [作業系統]、[執行階段]、[映像] 和 [映像檔版本] 中進行選取。若可用,請從 Environment type (環境類型) 進行選擇。

    要使用另一個 Docker 圖像:

    選擇「自訂影像」。對於「環境類型ARM,請選擇「Linux」、「Linux GPU」或「視窗」。如果您選擇 [其他登錄],對於 [外部登錄]URL,請使用格式在 Docker Hub 中輸入 Docker 映像的名稱和標記。docker repository/docker image name如果您選擇 Amazon ECR,請使用 Amazon ECR 存儲庫Amazon ECR 圖像在您的 AWS 帳戶中選擇 Docker 圖像。

    若要使用私人泊塢視窗映像檔:

    選擇「自訂影像」。對於「環境類型ARM,請選擇「Linux」、「Linux GPU」或「視窗」。對於映像登錄,請選擇 [其他登錄],然後輸入私人 Docker 映像ARN的認證。認證必須由 Secrets Manager 建立。如需詳細資訊,請參閱什麼是 AWS Secrets Manager?《AWS Secrets Manager 使用者指南》中。

    服務角色

    選擇下列其中一項:

    • 如果您沒有 CodeBuild 服務角色,請選擇 [新增服務角色]。在角色名稱中,輸入新角色的名稱。

    • 如果您有 CodeBuild 服務角色,請選擇現有服務角色。在角色中ARN,選擇服務角色。

    注意

    使用主控台建立或更新組建專案時,可以同時建立 CodeBuild 服務角色。根據預設,此角色只能與該建置專案搭配運作。如果您使用主控台將此服務角色與另一個建置專案建立關聯,則會更新此角色以與其他建置專案搭配運作。服務角色最多可以與 10 個組建專案搭配運作。

  8. 建構規格中,執行下列其中一項作業:

    • 選擇「使用建置規格檔案」,在原始程式碼根目錄中使用 buildspec.yml 檔案。

    • 選擇 [插入建置命令] 以使用主控台插入建置命令。

    如需詳細資訊,請參閱 Buildspec 參考

  9. Artifacts (成品) 中:

    類型

    選擇下列其中一項:

    • 如果您不要建立建置輸出成品,則請選擇 No artifacts (無成品)

    • 若要將組建輸出存放在 S3 儲存貯體中,請選擇 Amazon S3,然後執行下列動作:

      • 如果您想要將專案名稱用於建置輸出ZIP檔案或資料夾,請將 [名稱] 保留空白。否則請輸入名稱。根據預設,成品名稱是專案名稱。如果想使用不同的名稱,請在成品名稱方塊中輸入名稱。如果您要輸出ZIP檔案,請包含 zip 副檔名。

      • 針對 Bucket name (儲存貯體名稱),選擇輸出儲存貯體的名稱。

      • 如果您在此程序之前選擇了 [插入建置命令],對於 [輸出檔案],請輸入組建中您要放入組建輸出ZIP檔案或資料夾的檔案位置。針對多個位置,以逗號區隔每個位置 (例如,appspec.yml, target/my-app.jar)。如需詳細資訊,請參閱Buildspec 語法中的 files 描述。

    其他組態

    展開 Additional configuration (其他組態),並適當地設定選項。

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

步驟 2:使用比特桶網絡鉤子觸發構建

對於使用 Bitbucket Webhook 的項目,當 Bitbucket 存儲庫檢測到源代碼中的更改時 AWS CodeBuild 創建一個構建。

  1. https://console.aws.amazon.com/codesuite/代碼生成/家中打開 AWS CodeBuild 控制台。

  2. 在導覽窗格上,選擇 Build projects (建置專案),然後選擇與帶有 Webhook 的 Bitbucket 儲存庫相關聯的專案。如需建立 Bitbucket 網路掛接專案的相關資訊,請參閱。第 1 步:使用 Bitbucket 創建一個構建項目並啟用網絡掛鉤

  3. 在專案的 Bitbucket 儲存庫中對程式碼做些變更。

  4. 在 Bitbucket 儲存庫上建立提取請求。如需詳細資訊,請參閱提出提取請求

  5. 在 Bitbucket Webhook 頁面中,選擇 View request (檢視請求) 來查看最近事件的清單。

  6. 選擇檢視詳細資料,查看傳回之回應的詳細資訊 CodeBuild。這看起來類似下述:

    "response":"Webhook received and build started: https://us-east-1.console.aws.amazon.com/codebuild/home..." "statusCode":200
  7. 導覽至 Bitbucket 提取請求頁面來查看組建狀態。