本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS CodeBuild 可编译源代码,运行单元测试,并生成可供部署的项目。您可以将 CodeBuild 与 EB CLI 结合使用来从应用程序的源代码自动构建应用程序。环境创建和之后的每个部署都将以构建步骤开始,然后部署生成的应用程序。
注意
有些地区不提供 CodeBuild。Elastic B CodeBuild eanstalk 和 Elastic 之间的集成在这些地区不起作用。
有关每个地区提供的 AWS 服务的信息,请参阅区域表
创建 应用程序
创建使用的 Elastic Beanstalk 应用程序 CodeBuild
-
在您的应用程序文件夹中加入 CodeBuild 编译规范文件。
buildspec.yml
-
使用特定于 Elastic Beanstalk 的选项添加一个
eb_codebuild_settings
条目到文件。 -
在此文件夹中运行 eb init。
注意
将 EB CLI 与一起使用时,请勿在应用程序名称中使用句点 (
.
Elastic Beanstalk CodeBuild 扩展了构建规范文件格式,增加了以下其他设置:
eb_codebuild_settings:
CodeBuildServiceRole: role-name
ComputeType: size
Image: image
Timeout: minutes
CodeBuildServiceRole
-
CodeBuild 可用于代表您与依赖服务交互的 ARN 或 AWS Identity and Access Management (IAM) AWS 服务角色的名称。该值为必填项。如果您忽略此值,任何后续的 eb create 或 eb deploy 命令都将失败。
要了解有关为创建服务角色的更多信息 CodeBuild,请参阅AWS CodeBuild 用户指南中的创建 CodeBuild服务角色。
注意
您还需要权限才能 CodeBuild 自行执行操作。Elastic Bean AdministratorAccessstalk-AWSElastic Beanstalk 托管用户策略包括所有必需的操作权限。 CodeBuild 如果您不使用托管策略,请确保在用户策略中允许以下权限。
"codebuild:CreateProject", "codebuild:DeleteProject", "codebuild:BatchGetBuilds", "codebuild:StartBuild"
有关详细信息,请参阅管理 Elastic Beanstalk 用户策略。
ComputeType
-
Docker 容器在 CodeBuild 构建环境中使用的资源量。有效值为 BUILD_ _SMALL、BU GENERAL1 ILD_ _MEDIUM 和 BU GENERAL1 ILD_LARGE GENERAL1
Image
-
CodeBuild 用于构建环境的 Docker Hub 或 Amazon ECR 镜像的名称。此 Docker 镜像应包含构建代码所需的所有工具和运行时库,并且应与应用程序的目标平台相匹配。 CodeBuild 管理和维护一组专门用于 Elastic Beanstalk 的镜像。建议您使用其中一个。有关详细信息,请参阅《AWS CodeBuild 用户指南》 CodeBuild中提供的 Docker 镜像。
Image
值是可选的。如果您省略此值,eb init 命令会尝试选择与目标平台最匹配的映像。此外,如果您在交互模式下运行 eb init 并且它无法为您选择映像,则会提示您选择一个映像。成功结束初始化时,eb init 将选中的映像写入到buildspec.yml
文件中。 Timeout
-
CodeBuild 生成在超时之前运行的持续时间(以分钟为单位)。该值为可选项。有关有效值和默认值的详细信息,请参阅中的创建构建项目 CodeBuild。
构建和部署您的应用程序代码
每当需要部署应用程序代码时,EB CLI 都会使用运行构建,然后 CodeBuild 将生成的构建项目部署到您的环境中。当您使用 eb create 命令为应用程序创建 Elastic Beanstalk 环境时,以及您以后每次使用 eb deploy 命令将代码更改部署到环境时,就会发生上述这种情况。
如果该 CodeBuild 步骤失败,则不会开始创建或部署环境。