

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

# 建立使用 CodeBuild (CodePipeline 主控台） 的管道
<a name="how-to-create-pipeline-console"></a>

使用下列程序建立使用 CodeBuild 建置和部署原始程式碼的管道。

若要建立僅測試來源碼的管道：
+ 使用下列程序建立管道，然後從管道刪除「組建」及「Beta」階段。然後使用本主題中的[將 CodeBuild 測試動作新增至管道 (CodePipeline 主控台）](how-to-create-pipeline-add-test.md)程序，將使用 CodeBuild 的測試動作新增至管道。
+ 使用本主題中的其他程序之一來建立管道，然後使用本主題中的[將 CodeBuild 測試動作新增至管道 (CodePipeline 主控台）](how-to-create-pipeline-add-test.md)程序，將使用 CodeBuild 的測試動作新增至管道。

**若要使用 CodePipeline 中的建立管道精靈來建立使用 CodeBuild 的管道**

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) 開啟 AWS CodePipeline 主控台。

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

1. 建立管道。如果顯示 CodePipeline 資訊頁面，請選擇**建立管道**。若顯示 **Pipelines (管道)** 頁面，選擇 **Create pipeline (建立管道)**。

1. 在 **Step 1: Choose pipeline settings (步驟 1：選擇管道設定)** 頁面，針對 **Pipeline name (管道名稱)**，輸入管道的名稱 (例如 **CodeBuildDemoPipeline**)。如果您選擇不同名稱，請在此程序中都使用此名稱。

1. 針對 **Role name (角色名稱)**，執行下列其中一項操作：

   選擇 **New service role (新服務角色)**，並在 **Role Name (角色名稱)** 中輸入新服務角色的名稱。

   選擇**現有的服務角色**，然後選擇您建立或識別為本主題先決條件一部分的 CodePipeline 服務角色。

1. 針對 **Artifact store (成品存放區)** 中，執行下列其中一項操作：
   + 針對您為管道選取的 AWS 區域中的管道，選擇**預設位置**以使用預設成品存放區，例如指定為預設的 S3 成品儲存貯體。
   + 如果您已在管道的相同 AWS 區域中建立現有的成品存放區，例如 S3 成品儲存貯體，請選擇**自訂位置**。
**注意**  
這不是管道原始碼的來源儲存貯體。這是管道的成品存放區。在與管道相同的 AWS 區域中，每個管道都需要單獨的成品存放區，例如 S3 儲存貯體。

1. 選擇**下一步**。

1. 在 **Step 2: Add source stage (步驟 2：新增來源階段)** 頁面，針對 **Source provider (來源提供者)**，執行下列其中一項操作：
   + 如果您的來源碼存放在 S3 儲存貯體中，請選擇 **Amazon S3**。針對 Bucket (儲存貯體)****，選取含有原始程式碼的 S3 儲存貯體。針對 **S3 object key (S3 物件金鑰)**，輸入包含來源碼之檔案的名稱 (例如，`{{file-name}}.zip`)。選擇**下一步**。
   + 如果您的原始碼存放在 AWS CodeCommit 儲存庫中，請選擇 **CodeCommit**。針對 **Repository name (儲存庫名稱)**，請選擇包含來源碼的儲存庫名稱。針對 **Branch name (分支名稱)**，請選擇分支名稱，包含您希望建立的原始程式碼版本。選擇**下一步**。
   + 若您的來源碼存放於 GitHub 儲存庫，請選擇 **GitHub**。選擇 **Connect to GitHub (連線到 GitHub)**，然後依照說明向 GitHub 進行身分驗證。針對 **Repository (儲存庫)**，請選擇包含來源碼的儲存庫名稱。針對 **Branch (分支)**，請選擇分支名稱，包含您希望建立的原始程式碼版本。

   選擇**下一步**。

1. 在**步驟 3：新增建置階段**頁面上，針對**建置提供者**，選擇 **CodeBuild**。

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

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

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

1. 在 **Step 4: Add deploy stage (步驟 4：新增部署階段)** 頁面，執行下列其中一項操作：
   + 若您不想要部署組建輸出成品，請在系統出現提示時選擇 **Skip (略過)**，並確認此選擇。
   + 若您想要部署組建輸出成品，則針對 **Deploy provider (部署提供者)**，請選擇部署提供者，然後在系統出現提示時指定設定。

   選擇**下一步**。

1. 在 **Review (檢閱)** 頁面上，檢閱您的選擇，然後選擇 **Create pipeline (建立管道)**。

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

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**命令來取得儲存貯體的名稱，其中 {{my-pipeline-name}} 是管道的顯示名稱：

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

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

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

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

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