

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

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

使用以下过程创建用于生成和部署源代码的管道。 CodeBuild 

要创建仅测试源代码的管道：
+ 执行以下步骤来创建管道，然后从管道中删除构建和测试阶段。然后使用本主题中的 [向管道添加 CodeBuild 测试操作（CodePipeline 控制台）](how-to-create-pipeline-add-test.md) 步骤，将使用 CodeBuild 的测试操作添加到管道。
+ 使用本主题中的其他步骤之一来创建管道，然后使用本主题中的 [向管道添加 CodeBuild 测试操作（CodePipeline 控制台）](how-to-create-pipeline-add-test.md) 步骤，将使用 CodeBuild 的测试操作添加到管道。

**使用中的创建管道向导 CodePipeline 来创建使用以下内容的管道 CodeBuild**

1. 使用以下 Amazon Web Services 管理控制台 方式登录：
   + 您的 Amazon 主账号。我们不建议这么做。有关更多信息，请参阅《用户指南》**中的[账户根用户](https://docs.amazonaws.cn/IAM/latest/UserGuide/id_root-user.html)。
   + 您 Amazon 账户中的管理员用户。有关更多信息，请参阅用户*指南中的创建您的第一个 Amazon Web Services 账户 root 用户*[和群组](https://docs.amazonaws.cn/IAM/latest/UserGuide/getting-started_create-admin-group.html)。
   + 您 Amazon 账户中有权使用以下最低限度操作的用户：

     ```
     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.amazonaws.cn/codesuite/codepipeline/home) /hom Amazon CodePipeline e 打开控制台。

1. 在 Amazon 区域选择器中，选择您的构建项目 Amazon 资源所在的 Amazon 区域。这必须 CodeBuild 是支持的地 Amazon 区。有关更多信息，请参阅Amazon Web Services 一般参考中的 [Amazon CodeBuild](https://docs.amazonaws.cn/general/latest/gr/rande.html#codebuild_region)。

1. 创建管道。如果显示 CodePipeline 信息页面，请选择**创建管道**。如果显示**管道**页面，请选择**创建管道**。

1. 在**步骤 1：选择管道设置**页面上，对于**管道名称**，输入管道的名称（例如，**CodeBuildDemoPipeline**）。如果您选择其他名称，请确保在本过程中始终使用它。

1. 对于**角色名称**，执行以下操作之一：

   选择**新服务角色**，然后在**角色名称**中，输入新服务角色的名称。

   选择 **Existing service role (现有服务角色)**，然后选择已创建或标识为此主题的先决条件一部分的 CodePipeline 服务角色。

1. 对于**构件存储**，执行下列操作之一：
   + 选择**默认位置**，在您为管道选择的 Amazon 区域中使用默认项目存储，例如指定为默认的 S3 工件存储桶。
   + 如果您已经在与您的管道相同的 Amazon 区域中创建了现有项目存储（例如 S3 工件存储桶），请选择**自定义位置**。
**注意**  
这不是管道的源代码的源存储桶。这是管道的项目存储。每个管道都需要单独的项目存储，例如 S3 存储桶，与管道位于同一个 Amazon 区域。

1. 选择**下一步**。

1. 在**步骤 2：添加资源阶段**页面上，对于**源提供商**，执行下列操作之一：
   + 如果您的源代码存储在 S3 存储桶中，请选择 **Amazon S3**。对于**存储桶**，选择包含源代码的 S3 存储桶。对于**S3 对象键**，输入包含源代码的文件的名称（例如 `file-name.zip`）。选择**下一步**。
   + 如果您的源代码存储在存储 Amazon CodeCommit 库中，请选择**CodeCommit**。对于**存储库名称**，请选择包含源代码的存储库的名称。对于**分支名称**，请选择包含要构建的源代码版本的分支名称。选择**下一步**。
   + 如果您的源代码存储在存储 GitHub 库中，请选择**GitHub**。选择 **Connect t** o GitHub，然后按照说明进行身份验证 GitHub。对于**存储库**，请选择包含源代码的存储库的名称。对于**分支**，请选择包含要构建的源代码版本的分支名称。

   选择**下一步**。

1. 在 **Step 3: Add build stage (步骤 3: 添加构建阶段)** 页面上，对于 **Build provider (构建提供商)**，选择 **CodeBuild**。

1. 如果您已有要使用的构建项目，则对于**项目名称**，选择构建项目的名称并跳到本过程的下一步。

   如果您需要创建新的 CodeBuild 构建项目，请按照中的说明进行操作，[创建构建项目（控制台）](create-project.md#create-project-console)然后返回此过程。

   如果您选择现有的构建项目，则该项目必须已经定义了构建输出构件设置（尽管 CodePipeline 会覆盖这些设置）。有关更多信息，请参阅 [更改构建项目的设置（控制台）](change-project.md#change-project-console)。
**重要**  
如果您为 CodeBuild 项目启用 webhook，并且该项目被用作构建步骤 CodePipeline，则会为每次提交创建两个相同的构建。一个生成通过 Webhook 触发，另一个生成通过 CodePipeline 触发。由于账单基于每个构建，因此您需要为这两个构建付费。因此，如果您正在使用 CodePipeline，我们建议您在中禁用 webhook。 CodeBuild在 Amazon CodeBuild 控制台中，清除 **Webhook** 框。有关更多信息，请参阅 [更改构建项目的设置（控制台）](change-project.md#change-project-console)。

1. 在**步骤 4: 添加部署阶段**页面上，执行下列操作之一：
   + 如果您不想部署构建输出项目，请在系统提示时选择**跳过**并确认此选择。
   + 如果要部署构建输出项目，对于**部署提供商**，选择部署提供商，然后在系统提示时指定设置。

   选择**下一步**。

1. 在**查看**页面上，查看您的选择，然后选择**创建管道**。

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

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

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

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

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

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

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

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