

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

# 运行 “Bitbucket 拉取请求和 webhook 过滤器” 示例 CodeBuild
<a name="sample-bitbucket-pull-request"></a>

AWS CodeBuild 当源存储库为 Bitbucket 时，支持 webhook。这意味着，对于源代码存储在 Bitbucket 存储库中的 CodeBuild 构建项目，每次将代码更改推送到存储库时，都可以使用 webhook 来重建源代码。有关更多信息，请参阅 [Bitbucket Webhook 事件](bitbucket-webhook.md)。

此示例向您演示如何使用 Bitbucket 存储库创建拉取请求。它还向你展示了如何使用 Bitbucket webhook CodeBuild 来触发创建项目的构建。

**注意**  
使用 webhook 时，用户可能会触发意外构建。要降低这种风险，请参阅[使用 Webhook 的最佳实操](webhooks.md#webhook-best-practices)。

**Topics**
+ [先决条件](#sample-bitbucket-pull-request-prerequisites)
+ [步骤 1：使用 Bitbucket 创建构建项目并启用 webhook](#sample-bitbucket-pull-request-create)
+ [步骤 2：使用 Bitbucket webhook 触发构建](#sample-bitbucket-pull-request-trigger)

## 先决条件
<a name="sample-bitbucket-pull-request-prerequisites"></a>

 要运行此示例，您必须将您的 AWS CodeBuild 项目与 Bitbucket 账户关联起来。

**注意**  
 CodeBuild 已更新其使用 Bitbucket 的权限。如果您之前将项目连接到 Bitbucket，但现在收到 Bitbucket 连接错误，则必须重新连接才能授予管理您的 webh CodeBuild ook 的权限。

## 步骤 1：使用 Bitbucket 创建构建项目并启用 webhook
<a name="sample-bitbucket-pull-request-create"></a>

 以下步骤介绍如何使用 Bitbucket 作为源存储库创建 AWS CodeBuild 项目并启用 webhook。

1. 在 [https://console.aws.amazon.com/codesuite/codebuild](https://console.aws.amazon.com/codesuite/codebuild/home) /home 中打开 AWS CodeBuild 控制台。

1.  如果显示 CodeBuild 信息页面，请选择 “**创建构建项目**”。否则，请在导航窗格中，展开**构建**，选择**构建项目**，然后选择**创建构建项目**。

1. 选择**创建构建项目**。

1. 在**项目配置**中：  
**项目名称**  
输入此构建项目的名称。每个 AWS 账户中的构建项目名称必须是唯一的。您还可以包含构建项目的可选描述，以帮助其他用户了解此项目的用途。

1. 在**源**中：  
**源提供商**  
选择 **Bitbucket**。按照说明连接（或重新连接）Bitbucket，然后选择**授权**。  
**存储库**  
选择**我的 Bitbucket 账户中的存储库**。  
如果您之前未连接过 Bitbucket 账户，请输入您的 Bitbucket 用户名和应用程序密码，然后选择**保存 Bitbucket 凭证**。  
**Bitbucket 存储库**  
输入 Bitbucket 存储库的 URL。

1. 在**主要源 webhook 事件**中，选择以下内容。
**注意**  
只有在上一步中选择了**我的 Bitbucket 账户中的存储库**，**主要源 Webhook 事件**部分才可见。

   1. 创建项目时，选择**每次将代码更改推送到此存储库时都会重新构建**。

   1. 从**事件类型**中，选择一个或多个事件。

   1. 要在事件触发构建时进行筛选，请在**在这些条件下开始构建**下，添加一个或多个可选筛选条件。

   1. 要在未触发事件时进行筛选，请在**在这些条件下不开始构建**下，添加一个或多个可选筛选条件。

   1. 选择**添加筛选条件组**，以添加另一个筛选条件组（如果需要）。

   有关 Bitbucket webhook 事件类型和筛选的更多信息，请参阅 [Bitbucket Webhook 事件](bitbucket-webhook.md)。

1. 在**环境**中：  
**环境映像**  
选择下列选项之一：    
要使用由 AWS CodeBuild以下管理的 Docker 镜像，请执行以下操作：  
选择**托管映像**，然后选择**操作系统**、**运行时**、**映像**和**映像版本**。从**环境类型**中进行选择（如果可用）。  
要使用其他 Docker 映像：  
选择**自定义映像**。对于**环境类型**，请选择 **ARM**、**Linux**、**Linux GPU** 或 **Windows**。如果您针对**外部注册表 URL** 选择**其他注册表**，请使用 `docker repository/docker image name` 格式在 Docker Hub 中输入 Docker 映像的名称和标签。如果您选择 **Amazon ECR**，请使用**亚马逊 ECR 存储库和** A **mazon ECR 镜像**在您的账户中选择 Docker 镜像。 AWS   
要使用私有 Docker 映像，请执行以下操作：  
选择**自定义映像**。对于**环境类型**，请选择 **ARM**、**Linux**、**Linux GPU** 或 **Windows**。对于**映像注册表**，选择**其他注册表**，然后输入您的私有 Docker 映像的凭证的 ARN。凭证必须由 Secrets Manager 创建。有关更多信息，请参阅[什么是 AWS Secrets Manager？](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) 在《*AWS Secrets Manager 用户指南》*中。  
**服务角色**  
选择下列选项之一：  
   + 如果您没有 CodeBuild 服务角色，请选择 “**新建服务角色**”。在**角色名称**中，为新角色输入名称。
   + 如果您有 CodeBuild 服务角色，请选择**现有服务角色**。在**角色 ARN** 中，选择服务角色。
使用控制台创建或更新构建项目时，可以同时创建 CodeBuild 服务角色。默认情况下，这个角色仅能与该构建项目配合使用。如果您使用控制台将此服务角色与另一个构建项目关联，则此角色将更新以便与关联的构建项目结合使用。一个服务角色最多可与 10 个构建项目结合使用。

1. 在 **Buildspec** 中，执行以下操作之一：
   + 选择**使用 buildspec 文件**，以在源代码根目录中使用 buildspec.yml 文件。
   + 选择**插入构建命令**，以使用控制台插入构建命令。

   有关更多信息，请参阅[Buildspec 参考](build-spec-ref.md)。

1. 在**构件**中：  
**类型**  
选择下列选项之一：  
   + 如果您不想创建构建输出构件，请选择**无构件**。
   + 要将构建输出存储在 S3 存储桶中，请选择 **Amazon S3**，然后执行以下操作：
     + 如果要将项目名称用于构建输出 ZIP 文件或文件夹，请将**名称**留空。否则，请输入名称。默认情况下，构件名称是项目名称。如果您要使用其他名称，请在构件名称框中输入该名称。如果您要输出 ZIP 文件，请包含 zip 扩展名。
     + 对于**存储桶名称**，请选择输出存储桶的名称。
     + 如果您在此过程的前面部分选择了**插入构建命令**，对于**输出文件**，请输入构建（该构建要放到构建输出 ZIP 文件或文件夹中）中的文件位置。对于多个位置，使用逗号将各个位置隔开（例如，`appspec.yml, target/my-app.jar`）。有关更多信息，请参阅 [buildspec 语法](build-spec-ref.md#build-spec-ref-syntax)中 `files` 的描述。  
**其他配置**  
展开**其他配置**并根据需要设置选项。

1. 选择 **Create build project（创建构建项目）**。在**审核**页面上，选择**开始构建**以运行构建。

## 步骤 2：使用 Bitbucket webhook 触发构建
<a name="sample-bitbucket-pull-request-trigger"></a>

对于使用 Bitbucket webhook 的项目，当 Bitbucket 存储库检测到您的源代码发生变化时，会 AWS CodeBuild 创建一个构建。

1. 在 [https://console.aws.amazon.com/codesuite/codebuild](https://console.aws.amazon.com/codesuite/codebuild/home) /home 中打开 AWS CodeBuild 控制台。

1. 在导航窗格上，选择**构建项目**，然后选择项目以与 Bitbucket 存储库和 Webhook 关联。有关创建 Bitbucket webhook 项目的信息，请参阅[步骤 1：使用 Bitbucket 创建构建项目并启用 webhook](#sample-bitbucket-pull-request-create)。

1. 在您项目的 Bitbucket 存储库中更改一些代码。

1. 在 Bitbucket 存储库上创建拉取请求。有关更多信息，请参阅[发出拉取请求](https://www.atlassian.com/git/tutorials/making-a-pull-request)。

1. 在 Bitbucket Webhook 页面上，选择**查看请求**，以查看最新事件的列表。

1. 选择**查看详细信息**以查看返回的响应的详细信息 CodeBuild。其内容如下所示：

   ```
   "response":"Webhook received and build started: https://us-east-1.console.aws.amazon.com/codebuild/home..."
   "statusCode":200
   ```

1. 导航到 Bitbucket 拉取请求页面以查看构建的状态。