创建将构建输出托管在 S3 存储桶中的静态网站 - AWS CodeBuild
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

创建将构建输出托管在 S3 存储桶中的静态网站

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

  1. 按照设置静态网站中的说明操作,以配置一个以网站方式运行的 S3 存储桶。

  2. Open the AWS CodeBuild console at https://console.amazonaws.cn/codesuite/codebuild/home.

  3. 如果显示 CodeBuild 信息页面,请选择 Create build project (创建构建项目)。否则,请在导航窗格上展开 Build (构建),然后依次选择 Build projects (构建项目)Create build project (创建构建项目)

  4. Create build project (创建构建项目) 页面上的 Project configuration (项目配置) 中,输入此构建项目的名称。构建项目名称在您的各个 AWS 账户内必须是唯一的。您也可以包含构建项目的可选描述来帮助其他用户了解此项目的用途。

  5. Source (源) 中,对于 Source provider (源提供商),选择 GitHub。按照说明与 GitHub 连接(或重新连接),然后选择 Authorize (授权)

    对于 Webhook,选择 Rebuild every time a code change is pushed to this repository (每次将代码更改推送到此存储库时都会重新生成)。仅当您已选中 Use a repository in my account (在我的账户中使用存储库) 时才选中此复选框。

  6. Environment (环境) 中:

    对于 Environment image (环境映像),执行下列操作之一:

    • 要使用由 AWS CodeBuild 托管的 Docker 映像,请选择 Managed image (托管映像),然后从 Operating system (操作系统)Runtime(s) (运行时)Image (映像) 以及 Image version (映像版本) 中进行相应选择。从 Environment type (环境类型) 中进行选择(如果可用)。

    • 要使用其他 Docker 映像,请选择 Custom image (自定义映像)。对于 Environment type (环境类型),选择 ARM, Linux, Linux GPU, or Windows。如果您针对 External registry URL (外部注册表 URL) 选择 Other registry (其他注册表),请在 Docker Hub 中按照格式 docker repository/docker image name 输入 Docker 映像的名称和标签。如果您选择 Amazon ECR,请使用 Amazon ECR repository (Amazon ECR 存储库)Amazon ECR image (Amazon ECR 映像) 在您的 AWS 账户中选择 Docker 映像。

    • 要使用私有 Docker 映像,请选择 Custom image (自定义映像)。对于 Environment type (环境类型),选择 ARM, Linux, Linux GPU, or Windows。对于 Image registry (映像注册表),选择 Other registry (其他注册表),然后输入您的私有 Docker 映像的凭证的 ARN。凭证必须由 Secrets Manager 创建。有关更多信息,请参阅 AWS Secrets Manager 用户指南 中的什么是 AWS Secrets Manager?

  7. Service role (服务角色) 中,执行下列操作之一:

    • 如果您没有 CodeBuild 服务角色,请选择 New service role (新建服务角色)。在 Role name (角色名称) 中,为新角色输入一个名称。

    • 如果您有 CodeBuild 服务角色,请选择 Existing service role (现有服务角色)。在 Role ARN (角色 ARN) 中,选择服务角色。

    注意

    当您使用控制台来创建或更新生成项目时,您可以同时创建 CodeBuild 服务角色。默认情况下,这个角色仅能与该构建项目配合使用。如果您使用控制台将此服务角色与另一个构建项目关联,则此角色将更新以便与关联的构建项目结合使用。一个服务角色最多可与 10 个构建项目结合使用。

  8. 对于 Buildspec,执行以下操作之一:

    • 选择 Use a buildspec file (使用 buildspec 文件) 以在源代码根目录中使用 buildspec.yml 文件。

    • 选择 Insert build commands (插入构建命令) 以使用控制台插入构建命令。

    有关更多信息,请参见 构建规范参考

  9. Artifacts (构件) 中,对于 Type (类型),选择 Amazon S3 以将构建输出存储在 S3 存储桶中。

  10. 对于 Bucket name (存储桶名称),选择您在步骤 1 中配置以用作网站的 S3 存储桶的名称。

  11. 如果在 Environment (环境) 中选择 Insert build commands (插入构建命令),则对于 Output files (输出文件),请输入要放到输出存储桶中的构建中的文件位置。如果您有多个位置,请使用逗号分隔每个位置(例如,appspec.yml, target/my-app.jar)。有关更多信息,请参阅构建规范文件中的构件引用键

  12. 选择 Disable artifacts encryption (禁用构件加密)

  13. 展开 Additional configuration (其他配置) 并根据需要选择选项。

  14. 选择 Create build project (创建构建项目)。在生成项目页面上的 Build history (生成历史记录) 中,选择 Start build (启动生成) 以运行生成。

  15. (可选)按照 Amazon S3 开发人员指南 中的示例:使用 Amazon CloudFront 加快您的网站速度中的说明操作。