

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建置環境中的環境變數
<a name="build-env-ref-env-vars"></a>

AWS CodeBuild 提供數個可在建置命令中使用的環境變數：

AWS\$1DEFAULT\$1REGION  
組建執行所在的 AWS 區域 （例如 `us-east-1`)。此環境變數主要由 AWS CLI使用。

AWS\$1REGION  
組建執行所在的 AWS 區域 （例如 `us-east-1`)。此環境變數主要由 AWS SDKs 使用。

CODEBUILD\$1BATCH\$1BUILD\$1IDENTIFIER  
批次組建中組建的識別符。這是在批次建置規格中指定的。如需詳細資訊，請參閱[批次建置 buildspec 參考](batch-build-buildspec.md)。

CODEBUILD\$1BUILD\$1ARN  
組建的 Amazon Resource Name (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`)。如果 CodeBuild 的 Jenkins 外掛程式已啟動建置，這是字串 `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 Resource Name (ARN) （例如，`arn:aws:codebuild:region-ID:account-ID:project/project-name`)。

CODEBUILD\$1PUBLIC\$1BUILD\$1URL  
此組建在公有組建網站上的組建結果 URL。只有在建置專案已啟用公有建置時，才會設定此變數。如需詳細資訊，請參閱[取得公有建置專案 URLs](public-builds.md)。

CODEBUILD\$1RESOLVED\$1SOURCE\$1VERSION  <a name="CODEBUILD_RESOLVED_SOURCE_VERSION"></a>
組建原始碼的版本識別符。內容取決於原始程式碼儲存庫：    
CodeCommit、GitHub、GitHub Enterprise Server 和 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、GitHub Enterprise Server 和 Bitbucket，它是與要建置的來源碼版本相關聯的遞交 ID、分支名稱或標籤名稱。
**注意**  
對於由 Webhook 提取請求事件觸發的 GitHub 或 GitHub Enterprise Server 建置，它是 `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 提取請求與 squash 策略合併且提取請求分支關閉時，會設定此變數。在此情況下，原始提取請求遞交不再存在，因此此環境變數包含壓縮合併遞交的識別符。

CODEBUILD\$1WEBHOOK\$1PREV\$1COMMIT  
觸發目前組建的 Webhook 推送事件之前的最近遞交 ID。

CODEBUILD\$1WEBHOOK\$1HEAD\$1REF  
觸發目前建置之 Webhook 事件的前端參考名稱。它可以是分支參考或標籤參考。

CODEBUILD\$1WEBHOOK\$1TRIGGER  
顯示觸發建置的 Webhook 事件。此變數僅適用 Webhook 觸發的建置。該值會從 GitHub Enterprise Server 或 Bitbucket 傳送至 CodeBuild 的承載剖析。該值的格式取決於觸發建置的事件類型。  
+ 對於提取請求觸發的建置，它是 `pr/pull-request-number`。
+ 對於建立新分支或將遞交推送至分支而觸發的建置，它是 `branch/branch-name`。
+ 對於將標籤推送到儲存庫而觸發的建置，它是 `tag/tag-name`。

首頁  
此環境變數一律設定為 `/root`。

AWS CodeBuild 也支援一組自我託管執行器建置的環境變數。若要進一步了解 CodeBuild 自我託管執行器，請參閱 [教學課程：設定 CodeBuild 託管的 GitHub 動作執行器](action-runner.md)。

CODEBUILD\$1RUNNER\$1OWNER  
觸發自我託管執行器建置的儲存庫擁有者。

CODEBUILD\$1RUNNER\$1REPO  
觸發自我託管執行器建置的儲存庫名稱。

CODEBUILD\$1RUNNER\$1REPO\$1DOMAIN  
觸發自我託管執行器建置的儲存庫網域。只有指定的 GitHub Enterprise 組建。

CODEBUILD\$1WEBHOOK\$1LABEL  
用於在建置期間設定建置覆寫和自我託管執行器的標籤。

CODEBUILD\$1WEBHOOK\$1RUN\$1ID  
與組建相關聯的工作流程執行 ID。

CODEBUILD\$1WEBHOOK\$1JOB\$1ID  
與組建相關聯之任務的任務 ID。

CODEBUILD\$1WEBHOOK\$1WORKFLOW\$1NAME  
如果在 Webhook 請求承載中存在與組建相關聯的工作流程名稱。

CODEBUILD\$1RUNNER\$1WITH\$1BUILDSPEC  
如果在自我託管執行器請求標籤中設定 buildspec 覆寫，這會設定為 `true`。

您也可以為建置環境提供您自己的環境變數。如需詳細資訊，請參閱下列主題：
+ [搭配 CodePipeline 使用 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 參數存放區中，然後從 buildspec 中擷取這些值。若要存放敏感值，請參閱《*Amazon EC2 Systems Manager 使用者指南*》中的 [Systems Manager 參數存放](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。