AWS CodeBuild
用户指南 (API 版本 2016-10-06)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

构建环境中的环境变量

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

  • AWS_DEFAULT_REGION:运行生成的 AWS 区域(例如,us-east-1)。此环境变量主要由 AWS CLI 使用。

  • AWS_REGION:运行生成的 AWS 区域(例如,us-east-1)。此环境变量主要由 AWS 开发工具包使用。

  • 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_SUCCEEDING:无论当前构建是否成功。如果构建失败,设置为 0;如果构建成功,设置为 1

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

  • CODEBUILD_KMS_KEY_ID:CodeBuild 用于加密生成输出项目的 AWS KMS 密钥的标识符(例如,arn:aws:kms:region-ID:account-ID:key/key-IDalias/key-alias)。

  • CODEBUILD_LOG_PATH:CloudWatch Logs 中有关构建的日志流名称。

  • CODEBUILD_RESOLVED_SOURCE_VERSION:构建的源代码的版本标识符。其格式取决于源代码存储库:

    • 对于 CodeCommit、GitHub、GitHub Enterprise 和 Bitbucket,这是提交 ID。对于这些存储库,CODEBUILD_RESOLVED_SOURCE_VERSION 仅在 DOWNLOAD_SOURCE 阶段之后可用。

    • 对于 CodePipeline,这是 CodePipeline 提供的源代码修订。对于 CodePipeline,CODEBUILD_RESOLVED_SOURCE_VERSION 环境变量可能不会始终可用。

    • 对于 Amazon S3,这不适用。

  • CODEBUILD_SOURCE_REPO_URL:输入项目或源代码存储库的 URL。对于 Amazon S3,这是 s3://,后跟存储桶名称和输入项目的路径。对于 CodeCommit 和 GitHub,这是存储库的克隆 URL。如果生成源自 CodePipeline,则此值可能为空。

  • CODEBUILD_SOURCE_VERSION:值的格式取决于源代码存储库。

    • 对于 Amazon S3,这是与输入项目相关联的版本 ID。

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

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

      注意

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

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

    注意

    如果您使用辅助源,其目录路径的环境变量是 CODEBUILD_SRC_DIR_sourceIdentifier,其中 sourceIdentifier 是您创建的源标识符。有关更多信息,请参阅多输入源和输出构件示例

  • CODEBUILD_START_TIME:构建的开始时间。

  • CODEBUILD_WEBHOOK_ACTOR_ACCOUNT_ID:触发 Webhook 事件的用户的账户 ID。

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

  • CODEBUILD_WEBHOOK_EVENT:触发当前构建的 Webhook 事件。

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

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

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

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

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

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

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

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

重要

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

我们建议您将敏感值存储在 Amazon EC2 Systems Manager Parameter Store 中,然后从您的生成规范中检索它们。要存储敏感值,请参阅 Amazon EC2 Systems Manager 用户指南 中的 Systems Manager Parameter StoreSystems Manager Parameter Store 控制台演练。要检索它们,请参阅生成规范语法中的 parameter-store 映射。