

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

# 將 CodeBuild 組建動作新增至管道 (CodePipeline 主控台）
<a name="how-to-create-pipeline-add"></a>

1. 使用 AWS 管理主控台 登入 ：
   + 您的 AWS 根帳戶。此為不建議的選項。如需詳細資訊，請參閱[《 使用者指南》中的帳戶根使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html)。 **
   + 您 AWS 帳戶中的管理員使用者。如需詳細資訊，請參閱*《 使用者指南*》中的[建立您的第一個 AWS 帳戶 根使用者和群組](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html)。
   + 您 AWS 帳戶中具有執行下列最低動作集之許可的使用者：

     ```
     codepipeline:*
     iam:ListRoles
     iam:PassRole
     s3:CreateBucket
     s3:GetBucketPolicy
     s3:GetObject
     s3:ListAllMyBuckets
     s3:ListBucket
     s3:PutBucketPolicy
     codecommit:ListBranches
     codecommit:ListRepositories
     codedeploy:GetApplication
     codedeploy:GetDeploymentGroup
     codedeploy:ListApplications
     codedeploy:ListDeploymentGroups
     elasticbeanstalk:DescribeApplications
     elasticbeanstalk:DescribeEnvironments
     lambda:GetFunctionConfiguration
     lambda:ListFunctions
     opsworks:DescribeStacks
     opsworks:DescribeApps
     opsworks:DescribeLayers
     ```

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

1. 在 AWS 區域選擇器中，選擇管道所在的 AWS 區域。這必須是支援 CodeBuild 的區域。如需詳細資訊，請參閱《》中的 [CodeBuild](https://docs.aws.amazon.com/general/latest/gr/rande.html#codebuild_region)*Amazon Web Services 一般參考*。

1. 在 **Pipelines (管道)** 頁面上，選擇管道名稱。

1. 在管道詳細資訊頁面上，於 **Source (來源)** 動作中，選擇工具提示。記下 **Output artifact (輸出成品)** 的值 (例如，**MyApp**)。
**注意**  
此程序說明如何在 **Source (來源)** 和 **Beta** 階段間的組建階段內新增組建動作。若您希望將組建動作新增至其他地方，請選擇動作上的工具提示 (就在您要新增組建動作之位置前)，然後記下 **Output artifact (輸出成品)** 的值。

1. 選擇**編輯**。

1. 在 **Source (來源)** 和 **Beta** 階段間，選擇 **Add stage (新增階段)**。
**注意**  
此程序說明如何在 **Source (來源)** 和 **Beta** 階段之間將建置階段新增至您的管道。若要將組建動作新增至現有的階段，請選擇階段中的**Edit stage (編輯階段)** 圖示，然後跳到此程序的步驟 8。若要在別處新增組建階段，請在所需位置選擇 **Add stage (新增階段)**。

     
![如何將來源和 Beta 階段之間的建置階段新增至管道。](http://docs.aws.amazon.com/zh_tw/codebuild/latest/userguide/images/create-stage.png)

   

1. 針對 **Stage name (階段名稱)**，輸入組建階段的名稱 (例如，**Build**)。如果您選擇其他名稱，請在此程序中皆使用它。

1. 在選取的階段內部，選擇 **Add action (新增動作)**。
**注意**  
此程序說明您如何在組建階段內新增組建動作。若要在別處新增組建動作，請在所需位置選擇 **Add action (新增動作)**。您可能必須先選擇您欲新增組建動作之現有階段內的 **Edit stage (編輯階段)**。

1. 在 **Edit action (編輯動作)** 中，針對 **Action name (動作名稱)**，輸入動作的名稱 (例如 **CodeBuild**)。如果您選擇其他名稱，請在此程序中皆使用它。

1. 針對**動作提供者**，選擇 **CodeBuild**。

1. 如果您已有想要使用的建置專案，請在**專案名稱**中選擇建置專案的名稱，然後跳至此程序的下一個步驟。

   如果您需要建立新的 CodeBuild 組建專案，請遵循 中的指示[建立組建專案 (主控台)](create-project.md#create-project-console)並返回此程序。

   如果您選擇現有的建置專案，則必須定義建置輸出成品設定 （即使 CodePipeline 覆寫它們）。如需詳細資訊，請參閱 [建立組建專案 (主控台)](create-project.md#create-project-console)或 中的**成品**描述[變更建置專案的設定 (主控台)](change-project.md#change-project-console)。
**重要**  
如果您為 CodeBuild 專案啟用 Webhook，且該專案在 CodePipeline 中用作建置步驟，則會為每個遞交建立兩個相同的建置。一個建置會透過 Webhook 觸發，另一個則透過 CodePipeline 觸發。因為帳單是以每次組建為基礎，因此您將必須同時為兩次組建支付費用。因此，如果您使用的是 CodePipeline，建議您在 CodeBuild 中停用 Webhook。在 CodeBuild 主控台中，清除 **Webhook** 方塊。如需詳細資訊，請參閱[變更建置專案的設定 (主控台)](change-project.md#change-project-console)

1. 針對 **Input artifacts (輸入成品)**，選擇您稍早在本程序中記下的輸出成品。

1. 針對 **Output artifacts (輸出成品)**，輸入輸出成品名稱 (例如，**MyAppBuild**)。

1. 選擇**新增動作**。

1. 選擇 **Save (儲存)**，然後選擇 **Save (儲存)** 以儲存對管道的變更。

1. 選擇 **Release change (版本變更)**。

1. 在管道執行成功之後，您便會取得組建輸出成品。使用 CodePipeline 主控台中顯示的管道，在**建置**動作中，選擇工具提示。記下 **Output artifact (輸出成品)** 的值 (例如，**MyAppBuild**)。
**注意**  
您也可以選擇 CodeBuild 主控台中建置詳細資訊頁面上的**建置成品**連結，以取得建置輸出成品。若要抵達此頁面，請參閱[檢視建置的詳細資訊 (主控台)](view-build-details.md#view-build-details-console)，然後跳到此程序的步驟 31。

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 在儲存貯體清單中，開啟管線使用的儲存貯體。儲存貯體名稱必須遵循以下格式：`codepipeline-{{region-ID}}-{{random-number}}`。您可以使用 AWS CLI 執行 CodePipeline **get-pipeline**命令，以取得儲存貯體的名稱：

   ```
   aws codepipeline get-pipeline --name {{my-pipeline-name}}
   ```

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

1. 開啟與您管道名稱相符的資料 (根據管道名稱的長度，資料夾的名稱可能會遭到截斷)，然後開啟與您稍早在本程序中記下的 **Output artifact (輸出成品)** 值相符的資料夾。

1. 解壓縮 檔案的內容。若該資料夾中有多個檔案，請解壓縮 **Last Modified (最後修改)** 時間戳記最新的檔案內容。(您可能需要為檔案加上 `.zip` 副檔名，才能搭配您系統的 ZIP 公用程式使用。) 組建輸出成品位於檔案的解壓縮內容中。

1. 如果您指示 CodePipeline 部署建置輸出成品，請使用部署提供者的指示來取得部署目標上的建置輸出成品。