本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立使用 CodeBuild 的管道 (AWS CLI)
使用下列程序建立管道,以使用 CodeBuild 建置原始程式碼。
若要使用 AWS CLI 建立部署建置原始程式碼或僅測試原始程式碼的管道,您可以在 AWS CodePipeline 使用者指南 中調整編輯管道 (AWS CLI) 中的說明和CodePipeline管道結構參考。
-
在 中建立或識別建置專案 CodeBuild。如需詳細資訊,請參閱建立組建專案。
重要
建置專案必須定義建置輸出成品設定 (即使 CodePipeline 覆寫它們)。如需詳細資訊,請參閱建立建置專案 (AWS CLI)中的
artifacts
描述。 -
請確定您已 AWS CLI 使用對應至本主題所述其中一個IAM實體的 AWS 存取金鑰和 AWS 秘密存取金鑰來設定 。如需詳細資訊,請參閱 使用者指南 中的設定 AWS Command Line Interface 。 AWS Command Line Interface
-
建立代表管道結構的 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 服務角色的 。 -
configuration
中S3Bucket
和S3ObjectKey
的值會假設原始程式碼存放於 S3 儲存貯體中。如需其他原始程式碼儲存庫類型的設定,請參閱 AWS CodePipeline 使用者指南 中的CodePipeline 管道結構參考。 -
的值
ProjectName
是您在此程序中稍早建立的 CodeBuild 建置專案名稱。 -
location
的值為此管線使用的 S3 儲存貯體名稱。如需詳細資訊,請參閱 AWS CodePipeline 使用者指南 中的建立 S3 儲存貯體的政策,以用作 的成品存放 CodePipeline區。 -
name
的值為此管線的名稱。所有管線名稱對您的帳戶來說都必須是獨一無二的。
雖然此資料僅描述來源動作和建置動作,但您可以為與測試、部署建置輸出成品、叫用 AWS Lambda 函數等相關的活動新增動作。如需詳細資訊,請參閱 AWS CodePipeline 使用者指南 中的AWS CodePipeline 管道結構參考。
-
-
切換至包含 JSON 檔案的資料夾,然後執行 CodePipelinecreate-pipeline命令,指定檔案名稱:
aws codepipeline create-pipeline --cli-input-json file://create-pipeline.json
注意
您必須在 CodeBuild 支援的 AWS 區域中建立管道。如需詳細資訊,請參閱 Amazon Web Services 一般參考 中的 AWS CodeBuild。
JSON格式化的資料會出現在輸出中,並 CodePipeline 建立管道。
-
若要取得管道狀態的相關資訊,請 CodePipeline get-pipeline-state執行 命令,指定管道的名稱:
aws codepipeline get-pipeline-state --name
<my-pipeline-name>
在輸出中,尋找確認建置成功的資訊。省略符號 (
...
) 用於顯示為求簡化而省略的資料。{ ... "stageStates": [ ... { "actionStates": [ { "actionName": "CodeBuild", "latestExecution": { "status": "SUCCEEDED", ... }, ... } ] } ] }
若您太早執行此命令,您可能會無法看到任何與建置動作有關的資訊。您可能需要執行此命令數次,直到管線完成執行建置動作。
-
在成功建置之後,請遵循這些說明取得建置輸出成品。在 開啟 Amazon S3 主控台https://console.aws.amazon.com/s3/
。 注意
您也可以在主控台的相關建置詳細資訊頁面上 CodeBuild選擇建置成品連結,以取得建置輸出成品。若要抵達此頁面,請跳過此程序中的其餘步驟,並參閱檢視建置的詳細資訊 (主控台)。
-
在儲存貯體清單中,開啟管線使用的儲存貯體。儲存貯體名稱必須遵循以下格式:
codepipeline-
。您可以從<region-ID>
-<random-number>
create-pipeline.json
檔案取得儲存貯體名稱,也可以執行 CodePipeline get-pipeline 命令來取得儲存貯體名稱。aws codepipeline get-pipeline --name
<pipeline-name>
在輸出中,
pipeline
物件包含artifactStore
物件,其中包含帶有儲存貯體名稱的location
值。 -
開啟與您管線名稱相符的資料夾 (例如,
)。<pipeline-name>
-
在該資料夾中,開啟名為
default
的資料夾。 -
解壓縮 檔案的內容。若該資料夾中有多個檔案,請解壓縮 Last Modified (最後修改) 時間戳記最新的檔案內容。(您可能需要為檔案提供
.zip
副檔名,以便在系統ZIP公用程式中使用。) 組建輸出成品位於檔案的解壓縮內容中。