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

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

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

請遵循以下程序來建立使用 CodeBuild 的管道,來組建您的來源碼。

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

  1. 建立或找出 CodeBuild 中的組建專案。如需詳細資訊,請參閱建立組建專案

    重要

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

  2. 請確定您已使AWS CLI用與本主題中描述的其中一個 IAM 實體相對應的存取金鑰和AWS秘密存取金鑰進行設定。AWS若要取得更多資訊,請參閱《AWS Command Line Interface使用者指南》AWS 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 的值必須符合您在事前準備中建立或找到之 CodePipeline 服務角色的 ARN。

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

    • ProjectName 的值為您在此程序中先前建立的 CodeBuild 建置專案名稱。

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

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

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

  4. 切換到包含 JSON 檔案的資料夾,然後執行 CodePipeline create-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. 在成功建置之後,請遵循這些說明取得建置輸出成品。請在 https://console.aws.amazon.com/s3/ 開啟 Amazon Simple Storage Service (Amazon 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 公用程式搭配使用。) 組建輸出成品位於檔案的解壓縮內容中。