创建将构建输出托管在 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. If a CodeBuild information page is displayed, choose Create build project. Otherwise, on the navigation pane, expand Build, choose Build projects, and then choose Create build project.

  4. Project name (项目名称),输入此构建项目的名称。构建项目名称在您的各个 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 (环境类型),选择 ARMLinuxLinux GPUWindows。如果您针对 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 映像,请选择自定义映像。对于 Environment type (环境类型),选择 ARMLinuxLinux GPUWindows。对于 Image registry (映像注册表),选择 Other registry (其他注册表),然后输入您的私有 Docker 映像的凭证的 ARN。凭证必须由 Secrets Manager 创建。有关更多信息,请参阅 AWS Secrets Manager 用户指南 中的什么是 AWS Secrets Manager?

  7. In Service role, do one of the following:

    • If you do not have a CodeBuild service role, choose New service role. In Role name, enter a name for the new role.

    • If you have a CodeBuild service role, choose Existing service role. In Role ARN, choose the service role.

    注意

    When you use the console to create or update a build project, you can create a CodeBuild service role at the same time. By default, the role works with that build project only. If you use the console to associate this service role with another build project, the role is updated to work with the other build project. A service role can work with up to 10 build projects.

  8. 构建规范中,执行以下操作之一:

    • 选择 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)。有关更多信息,请参阅Artifacts reference-key in the buildspec file

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

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

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

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