建立使用 CodeBuild 的管道 (AWS CLI) - AWS CodeBuild

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

建立使用 CodeBuild 的管道 (AWS CLI)

使用下列程序建立管道,以使用 CodeBuild 建置原始程式碼。

若要使用 AWS CLI 建立部署建置原始程式碼或僅測試原始程式碼的管道,您可以在 AWS CodePipeline 使用者指南 中調整編輯管道 (AWS CLI) 中的說明和CodePipeline管道結構參考

  1. 在 中建立或識別建置專案 CodeBuild。如需詳細資訊,請參閱建立組建專案

    重要

    建置專案必須定義建置輸出成品設定 (即使 CodePipeline 覆寫它們)。如需詳細資訊,請參閱建立建置專案 (AWS CLI)中的 artifacts 描述。

  2. 請確定您已 AWS CLI 使用對應至本主題所述其中一個IAM實體的 AWS 存取金鑰和 AWS 秘密存取金鑰來設定 。如需詳細資訊,請參閱 使用者指南 中的設定 AWS Command Line InterfaceAWS Command Line Interface

  3. 建立代表管道結構的 JSON格式化檔案。將檔案命名為 create-pipeline.json 或相似名稱。例如,此JSON格式化結構會建立具有參考 S3 輸入儲存貯體的來源動作和使用 建置動作的管道 CodeBuild:

    { "pipeline": { "roleArn": "arn:aws:iam::<account-id>:role/<AWS-CodePipeline-service-role-name>", "stages": [ { "name": "Source", "actions": [ { "inputArtifacts": [], "name": "Source", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "S3" }, "outputArtifacts": [ { "name": "MyApp" } ], "configuration": { "S3Bucket": "<bucket-name>", "S3ObjectKey": "<source-code-file-name.zip>" }, "runOrder": 1 } ] }, { "name": "Build", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Build", "actionTypeId": { "category": "Build", "owner": "AWS", "version": "1", "provider": "CodeBuild" }, "outputArtifacts": [ { "name": "default" } ], "configuration": { "ProjectName": "<build-project-name>" }, "runOrder": 1 } ] } ], "artifactStore": { "type": "S3", "location": "<CodePipeline-internal-bucket-name>" }, "name": "<my-pipeline-name>", "version": 1 } }

    在此JSON格式化資料中:

    • 的值roleArn必須符合您建立或識別為先決條件一部分ARN之 CodePipeline 服務角色的 。

    • configurationS3BucketS3ObjectKey 的值會假設原始程式碼存放於 S3 儲存貯體中。如需其他原始程式碼儲存庫類型的設定,請參閱 AWS CodePipeline 使用者指南 中的CodePipeline 管道結構參考

    • 的值ProjectName是您在此程序中稍早建立的 CodeBuild 建置專案名稱。

    • location 的值為此管線使用的 S3 儲存貯體名稱。如需詳細資訊,請參閱 AWS CodePipeline 使用者指南 中的建立 S3 儲存貯體的政策,以用作 的成品存放 CodePipeline區。

    • name 的值為此管線的名稱。所有管線名稱對您的帳戶來說都必須是獨一無二的。

    雖然此資料僅描述來源動作和建置動作,但您可以為與測試、部署建置輸出成品、叫用 AWS Lambda 函數等相關的活動新增動作。如需詳細資訊,請參閱 AWS CodePipeline 使用者指南 中的AWS CodePipeline 管道結構參考

  4. 切換至包含 JSON 檔案的資料夾,然後執行 CodePipelinecreate-pipeline命令,指定檔案名稱:

    aws codepipeline create-pipeline --cli-input-json file://create-pipeline.json
    注意

    您必須在 CodeBuild 支援的 AWS 區域中建立管道。如需詳細資訊,請參閱 Amazon Web Services 一般參考 中的 AWS CodeBuild

    JSON格式化的資料會出現在輸出中,並 CodePipeline 建立管道。

  5. 若要取得管道狀態的相關資訊,請 CodePipeline get-pipeline-state執行 命令,指定管道的名稱:

    aws codepipeline get-pipeline-state --name <my-pipeline-name>

    在輸出中,尋找確認建置成功的資訊。省略符號 (...) 用於顯示為求簡化而省略的資料。

    { ... "stageStates": [ ... { "actionStates": [ { "actionName": "CodeBuild", "latestExecution": { "status": "SUCCEEDED", ... }, ... } ] } ] }

    若您太早執行此命令,您可能會無法看到任何與建置動作有關的資訊。您可能需要執行此命令數次,直到管線完成執行建置動作。

  6. 在成功建置之後,請遵循這些說明取得建置輸出成品。在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/

    注意

    您也可以在主控台的相關建置詳細資訊頁面上 CodeBuild選擇建置成品連結,以取得建置輸出成品。若要抵達此頁面,請跳過此程序中的其餘步驟,並參閱檢視建置的詳細資訊 (主控台)

  7. 在儲存貯體清單中,開啟管線使用的儲存貯體。儲存貯體名稱必須遵循以下格式:codepipeline-<region-ID>-<random-number>。您可以從 create-pipeline.json 檔案取得儲存貯體名稱,也可以執行 CodePipeline get-pipeline 命令來取得儲存貯體名稱。

    aws codepipeline get-pipeline --name <pipeline-name>

    在輸出中,pipeline 物件包含 artifactStore 物件,其中包含帶有儲存貯體名稱的 location 值。

  8. 開啟與您管線名稱相符的資料夾 (例如,<pipeline-name>)。

  9. 在該資料夾中,開啟名為 default 的資料夾。

  10. 解壓縮 檔案的內容。若該資料夾中有多個檔案,請解壓縮 Last Modified (最後修改) 時間戳記最新的檔案內容。(您可能需要為檔案提供.zip副檔名,以便在系統ZIP公用程式中使用。) 組建輸出成品位於檔案的解壓縮內容中。