构建环境中的环境变量 - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

构建环境中的环境变量

Amazon CodeBuild 提供了您可以在构建命令中使用的多个环境变量:

AWS_DEFAULT_REGION

运行构建的 Amazon 区域(例如,us-east-1)。此环境变量主要由 Amazon CLI 使用。

AWS_REGION

运行构建的 Amazon 区域(例如,us-east-1)。此环境变量主要由 Amazon 开发工具包使用。

CODEBUILD_BATCH_BUILD_IDENTIFIER

批量构建中构建的标识符。这是在批处理 buildspec 中指定的。有关更多信息,请参阅批量构建 buildspec 参考

CODEBUILD_BUILD_ARN

构建的 Amazon 资源名称 (ARN) (例如,arn:aws:codebuild:region-ID:account-ID:build/codebuild-demo-project:b1e6661e-e4f2-4156-9ab9-82a19EXAMPLE)。

CODEBUILD_BUILD_ID

构建的 CodeBuild ID(例如,codebuild-demo-project:b1e6661e-e4f2-4156-9ab9-82a19EXAMPLE)。

CODEBUILD_BUILD_IMAGE

CodeBuild 构建映像标识符(例如,aws/codebuild/standard:2.0)。

CODEBUILD_BUILD_NUMBER

项目的当前构建编号。

CODEBUILD_BUILD_SUCCEEDING

无论当前构建是否成功。如果构建失败,设置为 0;如果构建成功,设置为 1

CODEBUILD_INITIATOR

启动构建的实体。如果 CodePipeline 启动了构建,那么这就是管道的名称(例如 codepipeline/my-demo-pipeline)。如果用户启动了构建,那么这就是用户的名称(例如 MyUserName)。如果适用于 CodeBuild 的 Jenkins 插件启动了构建,那么这就是字符串 CodeBuild-Jenkins-Plugin

CODEBUILD_KMS_KEY_ID

CodeBuild 用于加密构建输出构件的 Amazon KMS 密钥的标识符(例如,arn:aws:kms:region-ID:account-ID:key/key-IDalias/key-alias)。

CODEBUILD_LOG_PATH

用于构建的 CloudWatch Logs 日志流名称。

CODEBUILD_PUBLIC_BUILD_URL

此构建在公共构建网站上的构建结果的 URL。仅当构建项目启用了公共构建时,才会设置此变量。有关更多信息,请参阅

CODEBUILD_RESOLVED_SOURCE_VERSION

构建的源代码的版本标识符。内容取决于源代码存储库:

CodeCommit、GitHub、GitHub Enterprise Server 和 Bitbucket

此变量包含提交 ID。

CodePipeline

此变量包含 CodePipeline 提供的源修订。

如果 CodePipeline 无法解析源修订,例如当源是未启用版本控制的 Amazon S3 存储桶时,则不会设置此环境变量。

Amazon S3

此变量未设置。

如果适用,该 CODEBUILD_RESOLVED_SOURCE_VERSION 变量仅在 DOWNLOAD_SOURCE 阶段之后才可用。

CODEBUILD_SOURCE_REPO_URL

输入构件或源代码存储库的 URL。对于 Amazon S3,这是 s3://,后跟存储桶名称和输入构件的路径。对于 CodeCommit 和 GitHub,这是存储库的克隆 URL。如果构建源自 CodePipeline,则此环境变量可能为空。

对于辅助源,辅助源存储库 URL 的环境变量是 CODEBUILD_SOURCE_REPO_URL_<sourceIdentifier>,其中 <sourceIdentifier> 是您创建的源标识符。

CODEBUILD_SOURCE_VERSION

值的格式取决于源存储库。

  • 对于 Amazon S3,这是与输入构件关联的版本 ID。

  • 对于 CodeCommit,这是与要构建的源代码的版本相关联的提交 ID 或分支名称。

  • 对于 GitHub、GitHub Enterprise Server 和 Bitbucket,这是与要生成的源代码的版本相关联的提交 ID、分支名称或标签名称。

    注意

    对于由 Webhook 拉取请求事件触发的 GitHub 或 GitHub Enterprise Server 构建,这是 pr/pull-request-number

对于辅助源,辅助源版本的环境变量是 CODEBUILD_SOURCE_VERSION_<sourceIdentifier>,其中 <sourceIdentifier> 是您创建的源标识符。有关更多信息,请参阅多输入源和输出构件示例

CODEBUILD_SRC_DIR

CodeBuild 用于构建的目录路径(例如,/tmp/src123456789/src)。

对于辅助源,辅助源目录的环境变量是 CODEBUILD_SRC_DIR_<sourceIdentifier>,其中 <sourceIdentifier> 是您创建的源标识符。有关更多信息,请参阅多输入源和输出构件示例

CODEBUILD_START_TIME

指定为 Unix 时间戳的构建开始时间(以毫秒为单位)。

CODEBUILD_WEBHOOK_ACTOR_ACCOUNT_ID

触发 Webhook 事件的用户的账户 ID。

CODEBUILD_WEBHOOK_BASE_REF

触发当前构建的 Webhook 事件的基本引用名称。对于拉取请求,这是分支引用。

CODEBUILD_WEBHOOK_EVENT

触发当前构建的 Webhook 事件。

CODEBUILD_WEBHOOK_MERGE_COMMIT

用于构建的合并提交的标识符。将 Bitbucket 拉取请求与压缩策略合并且拉取请求分支关闭时,会设置该变量。在这种情况下,原始拉取请求提交不再存在,该环境变量将包含压缩后的合并提交的标识符。

CODEBUILD_WEBHOOK_PREV_COMMIT

在触发当前构建的 Webhook 推送事件之前最新提交的 ID。

CODEBUILD_WEBHOOK_HEAD_REF

触发当前构建的 Webhook 事件的头部引用名称。它可以是分支引用或标签引用。

CODEBUILD_WEBHOOK_TRIGGER

显示触发构建的 Webhook 事件。此变量仅适用于 Webhook 触发的构建。该值是从通过 GitHub、GitHub Enterprise Server 或 Bitbucket 发送到 CodeBuild 的有效负载解析的。该值的格式取决于触发构建的事件类型。

  • 对于拉取请求触发的构建,这是 pr/pull-request-number

  • 对于通过创建新分支或将提交操作推送到分支而触发的构建,这是 branch/branch-name

  • 对于通过将标签推送到存储库而触发的构建,这是 tag/tag-name

HOME

此环境变量始终设置为 /root

您也可以为构建环境提供您自己的环境变量。有关更多信息,请参阅以下主题:

要列出构建环境中的所有可用环境变量,在构建期间,您可以运行 printenv 命令(针对基于 Linux 的构建环境)或 "Get-ChildItem Env:"(针对基于 Windows 的构建环境)。除之前列出的这些变量之外,以 CODEBUILD_ 开始的环境变量供 CodeBuild 内部使用。它们不应用于您的构建命令。

重要

我们强烈建议不要使用环境变量存储敏感值,尤其是 Amazon 访问密钥 ID。使用 CodeBuild 控制台和 Amazon CLI 等工具能够以纯文本格式显示环境变量。

我们建议您将敏感值存储在 Amazon EC2 Systems Manager Parameter Store 中,然后从您的 buildspec 中检索它们。要存储敏感值,请参阅《Amazon EC2 Systems Manager 用户指南》中的 Systems Manager Parameter Store演练:创建和测试参数(控制台)。要检索它们,请参阅buildspec 语法中的 parameter-store 映射。