AWS::CodeBuild::Project Environment - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::CodeBuild::Project Environment

EnvironmentAWS::CodeBuild::Project 资源的属性,用于指定 AWS CodeBuild 项目的环境。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Certificate" : String, "ComputeType" : String, "EnvironmentVariables" : [ EnvironmentVariable, ... ], "Image" : String, "ImagePullCredentialsType" : String, "PrivilegedMode" : Boolean, "RegistryCredential" : RegistryCredential, "Type" : String }

属性

Certificate

要用于此构建项目的证书。

必需:否

类型:字符串

Update requires: No interruption

ComputeType

计算环境的类型。此属性决定了构建环境使用的 CPU 核心和内存数。可用的值包括:

  • BUILD_GENERAL1_SMALL:最多将 3 GB 内存和 2 个 vCPU 用于构建操作。

  • BUILD_GENERAL1_MEDIUM:最多将 7 GB 内存和 4 个 vCPU 用于构建操作。

  • BUILD_GENERAL1_LARGE:最多将 15 GB 内存和 8 个 vCPU 用于构建操作。

有关更多信息,请参阅 AWS CodeBuild 用户指南 中的构建环境计算类型

必需:是

类型:字符串

Update requires: No interruption

EnvironmentVariables

一组环境变量,可用于此构建项目的构建操作。

必需:否

类型EnvironmentVariable 的列表

Update requires: No interruption

Image

标识 Docker 映像以用于此生成项目的映像标签或映像摘要。采用以下格式:

  • 对于映像标签:<registry>/<repository>:<tag>。例如,在 CodeBuild 用来管理其 Docker 映像的 Docker 存储库中,这将是 aws/codebuild/standard:4.0。要指定此映像的最新版本,这将是 aws/codebuild/standard:latest

  • 对于映像摘要:<registry>/<repository>@<digest>。例如,要用摘要“sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf”指定一个映像,请使用 <registry>/<repository>@sha256:cbbf2f9a99b47fc460d422812b6a5adff7dfee951d8fa2e4a98caa0382cfbdbf

必需:是

类型:字符串

最低1

Update requires: No interruption

ImagePullCredentialsType

用于在您的生成中拉取映像的凭证 AWS CodeBuild 的类型。有两个有效值:

  • CODEBUILD 指定 AWS CodeBuild 使用其自己的凭证。这要求您修改您的 ECR 存储库策略以信任 AWS CodeBuild 的服务委托人。

  • SERVICE_ROLE 指定 AWS CodeBuild 使用您的构建项目的服务角色。

当您使用跨账户或私有注册表映像时,必须使用 SERVICE_ROLE 凭证。当您使用 AWS CodeBuild 辅助映像时,必须使用 CODEBUILD 凭证。

必需:否

类型:字符串

允许的值CODEBUILD | SERVICE_ROLE

Update requires: No interruption

PrivilegedMode

允许在 Docker 容器内运行 Docker 守护程序。仅在构建项目用于构建 Docker 映像时设置为 true。否则,尝试与 Docker 守护程序进行交互的构建将失败。默认设置为 false.

您可以在构建的安装阶段通过将以下命令之一添加到 buildspec 文件的安装阶段,来初始化 Docker 守护程序:

如果操作系统的基本映像是 Ubuntu Linux:

- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&

- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"

如果操作系统的基本映像是 Alpine Linux,并且上述命令不起作用,请将 -t 参数添加到 timeout

- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 --storage-driver=overlay&

- timeout -t 15 sh -c "until docker info; do echo .; sleep 1; done"

必需:否

类型:布尔值

Update requires: No interruption

RegistryCredential

RegistryCredentialAWS::CodeBuild::Project Environment 属性的属性,用于指定有关提供私有 Docker 注册表访问权限的凭证信息。当设置此属性时:

  • imagePullCredentialsType 必须设置为 SERVICE_ROLE

  • 映像不能为辅助映像或 Amazon ECR 映像。

必需:否

类型RegistryCredential

Update requires: No interruption

Type

要用于相关构建的构建环境的类型。

  • 仅在以下区域中提供了环境类型 ARM_CONTAINER:美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(俄勒冈)、欧洲(爱尔兰)、亚太地区(孟买)、亚太地区(东京)、亚太地区(悉尼)以及欧洲(法兰克福)。

  • 仅在以下区域中提供了具有计算类型 build.general1.2xlarge 的环境类型 LINUX_CONTAINER:美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(俄勒冈)、加拿大(中部)、欧洲(爱尔兰)、欧洲(伦敦)、欧洲(法兰克福)、亚太地区(东京)、亚太地区(首尔)、亚太地区(新加坡)、亚太地区(悉尼)、中国(北京)和中国(宁夏)。

  • 仅在以下区域中提供了环境类型 LINUX_GPU_CONTAINER:美国东部(弗吉尼亚北部)、美国东部(俄亥俄)、美国西部(俄勒冈)、加拿大(中部)、欧洲(爱尔兰)、欧洲(伦敦)、欧洲(法兰克福)、亚太地区(东京)、亚太地区(首尔)、亚太地区(新加坡)、亚太地区(悉尼)、中国(北京)和中国(宁夏)。

必需:是

类型:字符串

允许的值ARM_CONTAINER | LINUX_CONTAINER | LINUX_GPU_CONTAINER | WINDOWS_CONTAINER | WINDOWS_SERVER_2019_CONTAINER

Update requires: No interruption