

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

# 创建将构建输出托管在 S3 存储桶中的静态网站
<a name="sample-disable-artifact-encryption"></a>

您可以在构建中禁用构件加密。您可能需要禁用构件加密，以便将构件发布到配置为托管网站的位置。（您不能发布加密的构件。） 此示例演示如何使用 Webhook 触发构建并将其构件发布到配置为网站的 S3 存储桶。

1.  按照[设置静态网站](https://docs.aws.amazon.com/AmazonS3/latest/userguide/HostingWebsiteOnS3Setup.html)中的说明操作，以配置一个以网站方式运行的 S3 存储桶。

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

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

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

1.  在 **Source (源)** 中，对于 **Source provider (源提供商)**，选择 **GitHub**。按照说明进行连接（或重新连接） GitHub，然后选择 “**授权**”。

    对于 **Webhook**，选择**每次将代码更改推送到此存储库时都会重新构建**。仅当您已选中**在我的账户中使用存储库**时才选中此复选框。  
![\[webhook 配置。\]](http://docs.aws.amazon.com/zh_cn/codebuild/latest/userguide/images/webhook.png)

1. 在**环境**中：

   对于**环境映像**，执行下列操作之一：
   + 要使用由管理的 Docker 映像 AWS CodeBuild，请选择**托管映像**，然后从 “**操作系统**”、“**运行时**”、“映像” 和 “**映像****版本**” 中进行选择。从**环境类型**中进行选择（如果可用）。
   + 要使用其他 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 用户指南》中的[什么是 AWS Secrets Manager？](https://docs.aws.amazon.com/secretsmanager/latest/userguide/)。

1. 在**服务角色**中，执行下列操作之一：
   + 如果您没有 CodeBuild 服务角色，请选择 “**新建服务角色**”。在**角色名称**中，为新角色输入名称。
   + 如果您有 CodeBuild 服务角色，请选择**现有服务角色**。在**角色 ARN** 中，选择服务角色。
**注意**  
使用控制台创建或更新构建项目时，可以同时创建 CodeBuild 服务角色。默认情况下，这个角色仅能与该构建项目配合使用。如果您使用控制台将此服务角色与另一个构建项目关联，则此角色将更新以便与关联的构建项目结合使用。一个服务角色最多可与 10 个构建项目结合使用。

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

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

1.  在**构件**中，对于**类型**，选择 **Amazon S3** 以将构建输出存储在 S3 存储桶中。

1.  对于**存储桶名称**，选择您在步骤 1 中配置以用作网站的 S3 存储桶的名称。

1.  如果您在**环境**中选择了**插入构建命令**，那么对于**输出文件**，请输入构建（该构建要放到输出存储桶中）中的文件位置。如果您有多个位置，请使用逗号分隔每个位置（例如，**appspec.yml, target/my-app.jar**）。有关更多信息，请参阅 [Artifacts reference-key in the buildspec file](build-spec-ref.md#artifacts-build-spec)。

1.  选择**禁用构件加密**。

1. 展开**其他配置**并根据需要选择选项。

1. 选择 **Create build project（创建构建项目）**。在构建项目页面上的**构建历史记录**中，选择**开始构建**以运行构建。

1.  （可选）按照《Amazon *S3 开发者指南》*中的 “[示例：使用亚马逊加速您的网站](https://docs.aws.amazon.com/AmazonS3/latest/userguide/website-hosting-cloudfront-walkthrough.html)” CloudFront 中的说明进行操作。