

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 向管道添加 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 账户 root 用户*[和群组](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://console.aws.amazon.com/codesuite/codepipeline](https://console.aws.amazon.com/codesuite/codepipeline/home) /hom CodePipeline e 打开控制台。

1. 在 AWS 区域选择器中，选择您的管道所在的 AWS 区域。这必须 CodeBuild 是支持的地区。有关更多信息，请参阅Amazon Web Services 一般参考中的 [CodeBuild](https://docs.aws.amazon.com/general/latest/gr/rande.html#codebuild_region)。

1. 在**管道**页面上，选择管道的名称。

1. 在管道详细信息页面的**源**操作中，选择工具提示。记下**输出对象**的值（例如，**MyApp**）。
**注意**  
此过程向您演示如何将构建操作添加到**源**和**测试**阶段之间的构建阶段内。如果您要在其他位置添加构建操作，在您要添加构建操作的位置之前的操作上选择工具提示，并记下**输出构件**的值。

1. 选择**编辑**。

1. 在**源**和**测试**阶段之间，选择**添加阶段**。
**注意**  
此过程向您演示如何在**源**和**测试**阶段之间添加构建阶段。要将构建操作添加到现有的阶段，请选择阶段中的**编辑阶段**，然后跳到此过程的步骤 8。要在其他位置添加构建阶段，请在所需位置选择**添加阶段**。

     
![\[如何在管线中的源和测试阶段之间添加构建阶段。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/create-stage.png)

   

1. 对于**阶段名称**，输入构建阶段的名称（例如，**Build**）。如果您选择了其他名称，请在整个过程中使用该名称。

1. 在选定阶段内，选择**添加操作**。
**注意**  
此过程向您演示如何在构建阶段内添加构建操作。要在其他位置添加构建操作，请在所需位置选择**添加操作**。您可能需要先在您要添加构建操作的现有阶段内选择**编辑阶段**。

1. 在**编辑操作**中，对于**操作名称**，输入操作的名称（例如，**CodeBuild**）。如果您选择了其他名称，请在整个过程中使用该名称。

1. 对于 **Action provider (操作提供商)**，选择 **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，我们建议您在中禁用 webhook。 CodeBuild在 CodeBuild 控制台中，清除 **Webhook** 复选框。有关更多信息，请参阅 [更改构建项目的设置（控制台）](change-project.md#change-project-console)。

1. 对于**输入构件**，选择您在此过程的前面记下的输出构件。

1. 对于**输出构件**，输入输出构件的名称（例如，**MyAppBuild**）。

1. 选择**添加操作**。

1. 选择**保存**，然后选择**保存**以保存对管道的更改。

1. 选择**发布更改**。

1. 管道成功运行后，您可以获取构建输出构件。在 CodePipeline 控制台中显示管道后，在 “**构建**” 操作中，选择工具提示。记下**输出对象**的值（例如，**MyAppBuild**）。
**注意**  
您还可以通过在 CodeBuild 控制台的构建详细信息页面上选择**构建构件**链接来获取构建输出工件。要访问此页面，请参阅[查看构建详细信息（控制台）](view-build-details.md#view-build-details-console)，然后跳到此过程的步骤 31。

1. 打开 Amazon S3 控制台，网址为 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 在存储桶列表中，请打开管道使用的存储桶。此存储桶的名称应遵循格式 `codepipeline-region-ID-random-number`。你可以使用运行 CodePipeline **get-pipeline**命令来获取存储桶的名称： AWS CLI 

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

    在输出中，该 `pipeline` 对象包含一个 `artifactStore` 对象，其中包含带有存储桶名称的 `location` 值。

1. 打开与您的管道名称匹配的文件夹（根据管道名称的长度，文件夹名称可能被截断），然后打开与您在此过程的前面记下的**输出构件**的值匹配的文件夹。

1. 提取文件内容。如果该文件夹中有多个文件，请提取具有最新**上一次修改**时间戳的文件的内容。（您可能需要为文件提供 `.zip` 扩展名，这样，您可以将其用于您系统内的 ZIP 实用工具。） 构建输出构件将位于文件的提取内容中。

1. 如果您指示 CodePipeline 部署构建输出项目，请使用部署提供商的说明访问部署目标上的构建输出项目。