

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

# 构建环境中的环境变量
<a name="build-env-ref-env-vars"></a>

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

AWS\$1DEFAULT\$1区域  
正在运行构建的 AWS 区域（例如，`us-east-1`）。此环境变量主要由 AWS CLI使用。

AWS\$1REGION  
正在运行构建的 AWS 区域（例如，`us-east-1`）。此环境变量主要由 AWS SDKs 使用。

CODEBUILD\$1BATCH\$1BUILD\$1IDENTIFIER  
批量构建中构建的标识符。这是在批处理 buildspec 中指定的。有关更多信息，请参阅[批量构建 buildspec 参考](batch-build-buildspec.md)。

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

CODEBUILD\$1BUILD\$1ID  
版本的 CodeBuild ID（例如，`codebuild-demo-project:b1e6661e-e4f2-4156-9ab9-82a19EXAMPLE`）。

CODEBUILD\$1BUILD\$1IMAGE  
 CodeBuild 构建映像标识符（例如`aws/codebuild/standard:2.0`）。

CODEBUILD\$1BUILD\$1NUMBER  
项目的当前构建编号。

CODEBUILD\$1BUILD\$1SUCCEEDING  
无论当前构建是否成功。如果构建失败，设置为 `0`；如果构建成功，设置为 `1`。

CODEBUILD\$1INITIATOR  
启动构建的实体。如果 CodePipeline 已启动构建，则这是管道的名称（例如，`codepipeline/my-demo-pipeline`）。如果用户启动了构建，那么这就是用户的名称（例如 `MyUserName`）。如果的 Jenkins 插件 CodeBuild 启动了构建，则这是字符串`CodeBuild-Jenkins-Plugin`。

CODEBUILD\$1KMS\$1KEY\$1ID  
用于加密生成输出工 CodeBuild 件的 AWS KMS 密钥的标识符（例如，`arn:aws:kms:region-ID:account-ID:key/key-ID`或`alias/key-alias`）。

CODEBUILD\$1PROJECT\$1ARN  
项目的 Amazon 资源名称（ARN）（例如 `arn:aws:codebuild:region-ID:account-ID:project/project-name`）。

CODEBUILD\$1PUBLIC\$1BUILD\$1URL  
此构建在公共构建网站上的构建结果的 URL。仅当构建项目启用了公共构建时，才会设置此变量。有关更多信息，请参阅 [获取公共构建项目 URL](public-builds.md)。

CODEBUILD\$1RESOLVED\$1SOURCE\$1VERSION  <a name="CODEBUILD_RESOLVED_SOURCE_VERSION"></a>
构建的源代码的版本标识符。内容取决于源代码存储库：    
CodeCommit、 GitHub、 GitHub 企业服务器和 Bitbucket  
此变量包含提交 ID。  
CodePipeline  
此变量包含提供的源版本号 CodePipeline。  
如果 CodePipeline 无法解析源版本，例如源是未启用版本控制的 Amazon S3 存储桶，则不会设置此环境变量。  
Amazon S3  
此变量未设置。
如果适用，该 `CODEBUILD_RESOLVED_SOURCE_VERSION` 变量仅在 `DOWNLOAD_SOURCE` 阶段之后才可用。

CODEBUILD\$1SOURCE\$1REPO\$1URL  
输入构件或源代码存储库的 URL。对于 Amazon S3，这是 `s3://`，后跟存储桶名称和输入构件的路径。对于 CodeCommit 和 GitHub，这是存储库的克隆 URL。如果版本源自 CodePipeline，则此环境变量可能为空。  
对于辅助源，辅助源存储库 URL 的环境变量是 `CODEBUILD_SOURCE_REPO_URL_<sourceIdentifier>`，其中 `<sourceIdentifier>` 是您创建的源标识符。

CODEBUILD\$1SOURCE\$1VERSION  
值的格式取决于源存储库。  
+ 对于 Amazon S3，这是与输入构件关联的版本 ID。
+ 对于 CodeCommit，它是与要编译的源代码版本关联的提交 ID 或分支名称。
+ 对于 GitHub E GitHub nterprise Server 和 Bitbucket，它是与要构建的源代码版本关联的提交 ID、分支名称或标签名称。
**注意**  
对于由 webhook 拉取请求事件触发的 GitHub 或 GitHub 企业服务器版本，确实如此`pr/pull-request-number`。
对于辅助源，辅助源版本的环境变量是 `CODEBUILD_SOURCE_VERSION_<sourceIdentifier>`，其中 `<sourceIdentifier>` 是您创建的源标识符。有关更多信息，请参阅[多输入源和输出构件示例](sample-multi-in-out.md)。

CODEBUILD\$1SRC\$1DIR  
 CodeBuild 用于构建的目录路径（例如，`/tmp/src123456789/src`）。  
对于辅助源，辅助源目录的环境变量是 `CODEBUILD_SRC_DIR_<sourceIdentifier>`，其中 `<sourceIdentifier>` 是您创建的源标识符。有关更多信息，请参阅 [多输入源和输出构件示例](sample-multi-in-out.md)。

CODEBUILD\$1START\$1TIME  
指定为 Unix 时间戳的构建开始时间（以毫秒为单位）。

CODEBUILD\$1WEBHOOK\$1ACTOR\$1ACCOUNT\$1ID  
触发 Webhook 事件的用户的账户 ID。

CODEBUILD\$1WEBHOOK\$1BASE\$1REF  
触发当前构建的 Webhook 事件的基本引用名称。对于拉取请求，这是分支引用。

CODEBUILD\$1WEBHOOK\$1EVENT  
触发当前构建的 Webhook 事件。

CODEBUILD\$1WEBHOOK\$1MERGE\$1COMMIT  <a name="CODEBUILD_WEBHOOK_MERGE_COMMIT"></a>
用于构建的合并提交的标识符。将 Bitbucket 拉取请求与压缩策略合并且拉取请求分支关闭时，会设置该变量。在这种情况下，原始拉取请求提交不再存在，该环境变量将包含压缩后的合并提交的标识符。

CODEBUILD\$1WEBHOOK\$1PREV\$1COMMIT  
在触发当前构建的 Webhook 推送事件之前最新提交的 ID。

CODEBUILD\$1WEBHOOK\$1HEAD\$1REF  
触发当前构建的 Webhook 事件的头部引用名称。它可以是分支引用或标签引用。

CODEBUILD\$1WEBHOOK\$1TRIGGER  
显示触发构建的 Webhook 事件。此变量仅适用于 Webhook 触发的构建。该值是根据发送给 GitHub 企业服务器或 Bitbucket CodeBuild 的 GitHub有效负载解析的。该值的格式取决于触发构建的事件类型。  
+ 对于拉取请求触发的构建，这是 `pr/pull-request-number`。
+ 对于通过创建新分支或将提交操作推送到分支而触发的构建，这是 `branch/branch-name`。
+ 对于通过将标签推送到存储库而触发的构建，这是 `tag/tag-name`。

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

AWS CodeBuild 还支持一组用于自托管运行器版本的环境变量。要了解有关 CodeBuild 自托管运行器的更多信息，请参阅[教程：配置 CodeBuild托管的 GitHub 操作运行器](action-runner.md)。

CODEBUILD\$1RUNNER\$1OWNER  
触发自托管运行器构建的存储库的拥有者。

CODEBUILD\$1RUNNER\$1REPO  
触发自托管运行器构建的存储库的名称。

CODEBUILD\$1RUNNER\$1REPO\$1DOMAIN  
触发自托管运行器构建的存储库的域。仅指定 GitHub 企业版本。

CODEBUILD\$1WEBHOOK\$1LABEL  
用于在构建期间配置构建覆盖和自托管运行器的标签。

CODEBUILD\$1WEBHOOK\$1RUN\$1ID  
与构建关联的工作流的运行 ID。

CODEBUILD\$1WEBHOOK\$1JOB\$1ID  
与构建关联的作业的作业 ID。

CODEBUILD\$1WEBHOOK\$1WORKFLOW\$1NAME  
与构建关联的工作流的名称（如果存在于 webhook 请求有效载荷中）。

CODEBUILD\$1RUNNER\$1WITH\$1BUILDSPEC  
如果在自托管运行器请求标签中配置了 buildspec 覆盖，则将其设置为 `true`。

您也可以为构建环境提供您自己的环境变量。有关更多信息，请参阅以下主题：
+ [ CodeBuild 搭配使用 CodePipeline](how-to-create-pipeline.md)
+ [创建构建项目](create-project.md)
+ [更改构建项目设置](change-project.md)
+ [手动运行构建](run-build.md)
+ [Buildspec 参考](build-spec-ref.md)

要列出构建环境中的所有可用环境变量，在构建期间，您可以运行 `printenv` 命令（针对基于 Linux 的构建环境）或 `"Get-ChildItem Env:"`（针对基于 Windows 的构建环境）。除前面列出的环境变量外，以开头的环境变量`CODEBUILD_`仅供 CodeBuild 内部使用。它们不应用于您的构建命令。

**重要**  
我们强烈不鼓励使用环境变量来存储敏感值，尤其是 AWS 访问密钥 IDs。可以使用 CodeBuild 控制台和之类的工具以纯文本形式显示环境变量 AWS CLI。  
我们建议您将敏感值存储在 Amazon EC2 Systems Manager Parameter Store 中，然后从您的 buildspec 中检索它们。要存储敏感值，请参阅《Amazon EC2 Systems Manager 用户指南》中的 [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) 和[演练：创建和测试参数（控制台）](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-console.html)。要检索它们，请参阅[buildspec 语法](build-spec-ref.md#build-spec-ref-syntax)中的 `parameter-store` 映射。

CODEBUILD\$1BUILD\$1URL  
此构建的构建结果的 URL。