

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

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

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

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

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

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

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`）。如果的 Jenkins 插件 CodeBuild 启动了构建，则这是字符串`CodeBuild-Jenkins-Plugin`。

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

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

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

CODEBUILD\_RESOLVED\_SOURCE\_VERSION  <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\_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 E GitHub nterprise Server 和 Bitbucket，它是与要构建的源代码版本关联的提交 ID、分支名称或标签名称。
**注意**  
对于由 webhook 拉取请求事件触发的 GitHub 或 GitHub 企业服务器版本，确实如此`pr/{{pull-request-number}}`。
对于辅助源，辅助源版本的环境变量是 `CODEBUILD_SOURCE_VERSION_{{<sourceIdentifier>}}`，其中 `{{<sourceIdentifier>}}` 是您创建的源标识符。有关更多信息，请参阅[多输入源和输出构件示例](sample-multi-in-out.md)。

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

CODEBUILD\_START\_TIME  
指定为 Unix 时间戳的构建开始时间（以毫秒为单位）。

CODEBUILD\_WEBHOOK\_ACTOR\_ACCOUNT\_ID  
触发 Webhook 事件的用户的账户 ID。

CODEBUILD\_WEBHOOK\_BASE\_REF  
触发当前构建的 Webhook 事件的基本引用名称。对于拉取请求，这是分支引用。

CODEBUILD\_WEBHOOK\_EVENT  
触发当前构建的 Webhook 事件。

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

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

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

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

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

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

CODEBUILD\_RUNNER\_OWNER  
触发自托管运行器构建的存储库的拥有者。

CODEBUILD\_RUNNER\_REPO  
触发自托管运行器构建的存储库的名称。

CODEBUILD\_RUNNER\_REPO\_DOMAIN  
触发自托管运行器构建的存储库的域。仅指定 GitHub 企业版本。

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

CODEBUILD\_WEBHOOK\_RUN\_ID  
与构建关联的工作流的运行 ID。

CODEBUILD\_WEBHOOK\_JOB\_ID  
与构建关联的作业的作业 ID。

CODEBUILD\_WEBHOOK\_WORKFLOW\_NAME  
与构建关联的工作流的名称（如果存在于 webhook 请求有效载荷中）。

CODEBUILD\_RUNNER\_WITH\_BUILDSPEC  
如果在自托管运行器请求标签中配置了 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-based 构建环境）或`"Get-ChildItem Env:"`（对于 Windows-based 构建环境）。除前面列出的环境变量外，以开头的环境变量`CODEBUILD_`仅供 CodeBuild 内部使用。它们不应用于您的构建命令。

**重要**  
我们强烈不鼓励使用环境变量来存储敏感值，尤其是 AWS 访问密钥 ID。可以使用 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\_BUILD\_URL  
此构建的构建结果的 URL。