本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
變數參考
本節僅供參考。如需有關建立變數的資訊,請參閱使用變數。
變數可讓您使用管線執行或動作執行時決定的值來設定管線動作。
某些動作提供者會產生一組已定義的變數。您可以從該動作提供者的預設變數索引鍵中選擇,例如遞交 ID。
重要
傳遞秘密參數時,請勿直接輸入值。此值渲染為純文字,因此為可讀取。出於安全原因,請勿使用帶有密碼的純文本。我們強烈建議您使用 AWS Secrets Manager 來儲存機密。
若要查看 step-by-step 使用變數的範例:
-
如需在管線執行時傳送的管線層級變數的教學課程,請參閱。教學課程:使用管線層級變數
-
如需具有 Lambda 動作的教學課程,該動作使用上游動作 (CodeCommit) 中的變數並產生輸出變數,請參閱教學課程:搭配 Lambda 叫用動作使用變。
-
如需具有參考上游 AWS CloudFormation 動作之堆疊輸出變數之 CloudFormation 動作的自學課程,請參閱〈〉教學課程:建立使用 AWS CloudFormation 部署動作變數的管道。
-
如需含有訊息文字的手動核准動作範例,其中參考解析為 CodeCommit 提交 ID 和提交訊息的輸出變數,請參閱範例:在手動核准中使用變數。
-
如需具有可解析為 GitHub分支名稱之環境變數的範例 CodeBuild 動作,請參閱範例:使用具有 CodeBuild 環境 BranchName變數的變數。
-
CodeBuild 動作會以變數形式產生所有已匯出為組建一部分的環境變數。如需詳細資訊,請參閱CodeBuild 動作輸出變數。
變數限制
如需限制資訊,請參閱 配額 AWS CodePipeline。
注意
當您在動作組態欄位中輸入變數語法時,請勿超過組態欄位的 1000 個字元限制。如果超過此限制,系統就會傳回驗證錯誤。
概念
本節列出與變數和命名空間相關的主要術語和概念。
Variables
變數是鍵值組,可用來動態設定管道中的動作。目前有三種方式可以使用這些變數:
-
每個管線執行開始時有一組隱含可用的變數。這組變數目前包括
PipelineExecutionId
(目前管道執行的 ID)。 -
管線層級的變數是在建立配管時定義的,並在配管執行時解析。
您可以在建立配管時指定管線層級變數,並且可以在執行配管時提供值。
-
某些動作類型在執行時產生一組變數。您可以檢查屬於的
outputVariables
欄位,來查看動作所產生的變數。ListActionExecutionsAPI如需各動作提供者的可用索引鍵名稱的清單,請參閱管道動作可用的變數。若要查看每個動作類型所產生的變數,請參閱 CodePipeline 動作結構參考。
若要在動作組態中參考這些變數,您必須使用具有正確命名空間的變數參考語法。
如需變數工作流程範例,請參閱設定變數 。
命名空間
為了確保可唯一參考變數,必須將變數指派到一個命名空間。將一組變數指派到命名空間之後,即可在動作組態中使用命名空間和變數索引鍵來參考變數,語法如下:
#{namespace.variable_key}
有三種類型的命名空間下,可以分配變量:
-
CodePipeline 保留的命名空間
這是指派給每個管道執行開始時可用的隱含變數集的命名空間。這個命名空間是
codepipeline
。變數參考範例:#{codepipeline.PipelineExecutionId}
-
在管道級別的變量命名空間
這是指派給管線層級變數的命名空間。管線層級中所有變數的命名空間為
variables
。變數參考範例:#{variables.variable_name}
-
動作指派的命名空間
這是您指派給動作的命名空間。由動作產生的所有變數都屬於這個命名空間。若要讓動作所產生的變數可供下游動作組態中使用,您必須使用命名空間來設定產生動作。命名空間在整個管道定義中必須是唯一的,且不能與任何成品名稱衝突。以下是使用命名空間
SourceVariables
設定的動作的變數參考範例。#{SourceVariables.VersionId}
變數的使用案例
以下是管線層級變數的一些最常見使用案例,可協助您判斷如何針對特定需求使用變數。
-
管道層級的變數適用於希望每次使用相同管道的 CodePipeline 客戶,但動作組態的輸入有些微差異。任何啟動管道的開發人員都會在管道啟動時在 UI 中新增變數值。使用此組態時,您只會傳遞該執行的參數。
-
使用管線層級變數,您可以將動態輸入傳遞至管線中的動作。您可以將參數化管線移轉至, CodePipeline 而不必維護相同管線的不同版本,或建立複雜的管道。
-
您可以使用管線層級變數傳遞輸入參數,以便在每次執行時重複使用管線,例如當您要指定要部署到生產環境的版本時,因此您不必複製管線。
-
您可以使用單一管道將資源部署到多個建置和部署環境。例如,對於具有 CodeCommit 存放庫的管道,可以使用在管線層級傳遞和 CodeDeploy參數來完成從指定的分支 CodeBuild 和目標部署環境進行部署。
設定變數
您可以在配管層級或配管結構中的動作層級配置變數。
在管線層級配置變數
您可以在配管層級新增一或多個變數。您可以在 CodePipeline 動作的組態中參照此值。您可以在建立配管時新增變數名稱、預設值和說明。變量在執行時解析。
注意
如果未在管線層級為變數定義預設值,則會將該變數視為必要。您必須在啟動管線時指定所有必要變數的取代,否則管線執行將會失敗並出現驗證錯誤。
您可以使用配管結構中的 variable 屬性在管線層級提供變數。在下列範例中,Variable1
變數的值為Value1
。
"variables": [ { "name": "Variable1", "defaultValue": "Value1", "description": "description" } ]
如需配管JSON結構中的範例,請參閱建立管道、階段和動作。
如需在管線執行時傳送的管線層級變數的教學課程,請參閱。教學課程:使用管線層級變數
請注意,不支援在任何類型的 Source 動作中使用管線層級變數。
注意
如果variables
命名空間已用於管線中的某些動作,您必須更新動作定義,並為衝突的動作選擇另一個命名空間。
在動作層級配置變數
您可以宣告動作的命名空間,以設定動作來產生變數。動作必須已經是產生變數的動作提供者之一。否則,可用的變數是管道層級的變數。
您可以透過以下方式宣告命名空間:
-
在主控台的 Edit action (編輯動作) 頁面上,在 Variable namespace (變數命名空間) 中輸入命名空間。
-
在JSON配管結構的
namespace
參數欄位中輸入命名空間。
在此範例中,您可以使用名稱將namespace
參數加入至 CodeCommit 來源動作SourceVariables
。這會設定動作來產生可供該動作提供者使用的變數,例如 CommitId
。
{ "name": "Source", "actions": [ { "outputArtifacts": [ { "name": "SourceArtifact" } ], "name": "Source",
"namespace": "SourceVariables",
"configuration": { "RepositoryName": "MyRepo", "BranchName": "mainline", "PollForSourceChanges": "false" }, "inputArtifacts": [], "region": "us-west-2", "actionTypeId": { "provider": "CodeCommit", "category": "Source", "version": "1", "owner": "AWS" }, "runOrder": 1 } ] },
接下來,您將下游動作設定為使用先前動作所產生的變數。作法如下:
-
在主控台的 Edit action (編輯動作) 頁面上,在動作組態欄位中輸入變數語法 (針對下游動作)。
-
在配JSON管結構的動作組態欄位中輸入變數語法 (用於下游動作)
在此範例中,建置動作的組態欄位顯示動作執行時更新的環境變數。此範例以 #{codepipeline.PipelineExecutionId}
指定執行 ID 的命名空間和變數,以 #{SourceVariables.CommitId}
指定遞交 ID 的命名空間和變數。
{ "name": "Build", "actions": [ { "outputArtifacts": [ { "name": "BuildArtifact" } ], "name": "Build", "configuration": { "EnvironmentVariables": "[{\"name\":\"Release_ID\",\"value\":\"#{codepipeline.PipelineExecutionId}\",\"type\":\"PLAINTEXT\"},{\"name\":\"Commit_ID\",\"value\":\"#{SourceVariables.CommitId}\",\"type\":\"PLAINTEXT\"}]", "ProjectName": "env-var-test" }, "inputArtifacts": [ { "name": "SourceArtifact" } ], "region": "us-west-2", "actionTypeId": { "provider": "CodeBuild", "category": "Build", "version": "1", "owner": "AWS" }, "runOrder": 1 } ] },
變數解析
每次在管道執行中執行動作時,它產生的變數可用於產生動作之後保證發生的任何動作中。若要在取用動作中使用這些變數,您可以使用上一個範例所示的語法,將這些變數新增至取用動作的組態。在執行消費動作之前,請先 CodePipeline 解析組態中存在的所有變數參照,然後再啟動動作執行。
變數的規則
下列規則可協助您設定變數:
-
您可以透過新的動作屬性或編輯動作,指定動作的命名空間和變數。
-
當您使用管道建立精靈時,主控台會為精靈建立的每個動作產生命名空間。
-
如果未指定命名空間,則無法在任何動作組態中參考該動作產生的變數。
-
若要參考動作所產生的變數,參考動作必須在產生變數的動作之後發生。這意味著在比產生變數的動作更晚的階段,或在同一階段,但執行順序較高。
管道動作可用的變數
動作提供者決定哪些變數可以由動作產生。
如需管理變數的 step-by-step 程序,請參閱使用變數。
具有已定義變數鍵的動作
與您可以選擇的命名空間不同,下列動作使用無法編輯的變數索引鍵。例如,對於 Amazon S3 動作提供者,只有ETag
和可VersionId
變金鑰可用。
每個執行也有一組 CodePipeline產生的管線變數,其中包含執行相關資料,例如管線發行 ID。管道中的任何動作都可以取用這些變數。
主題
CodePipeline執行 ID 變數
CodePipeline執行 ID 變數 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
供應商 | 變數索引鍵 | 範例值 | 範例變數語法 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
codepipeline | PipelineExecutionId |
8 英寸-fbf8-4f4C-英寸 EXAMPLE | #{codepipeline.PipelineExecutionId} |
Amazon ECR 動作輸出變量
Amazon ECR 變量 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
變數索引鍵 | 範例值 | 範例變數語法 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ImageDigest |
SHA256: EXAMPLE1122334455 | #{SourceVariables.ImageDigest} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ImageTag |
最新 | #{SourceVariables.ImageTag} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ImageURI |
美國西部-2. 亞馬遜網站/電子郵件回复:最新 EXAMPLE | #{SourceVariables.ImageURI} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RegistryId |
EXAMPLE12233 | #{SourceVariables.RegistryId} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RepositoryName |
my-image-repo | #{SourceVariables.RepositoryName} |
AWS CloudFormation StackSets 動作輸出變數
AWS CloudFormation StackSets 變數 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
變數索引鍵 | 範例值 | 範例變數語法 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OperationId |
例如 | #{DeployVariables.OperationId} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
StackSetId |
我的堆棧: | #{DeployVariables.StackSetId} |
CodeCommit 動作輸出變數
CodeCommit 變數 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
變數索引鍵 | 範例值 | 範例變數語法 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AuthorDate |
2019-10-29T03:32:21Z | #{SourceVariables.AuthorDate} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BranchName |
開發 | #{SourceVariables.BranchName} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CommitId |
exampleb01f91b31 |
#{SourceVariables.CommitId} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CommitMessage |
修正錯誤 (100 KB 大小上限) | #{SourceVariables.CommitMessage} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CommitterDate |
2019-10-29T03:32:21Z | #{SourceVariables.CommitterDate} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RepositoryName |
myCodeCommit回購 | #{SourceVariables.RepositoryName} |
CodeStarSourceConnection 動作輸出變數
CodeStarSourceConnection 變量(比特桶雲 GitHub, GitHub企業存儲庫和 GitLab .com) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
變數索引鍵 | 範例值 | 範例變數語法 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AuthorDate |
2019-10-29T03:32:21Z | #{SourceVariables.AuthorDate} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BranchName |
開發 | #{SourceVariables.BranchName} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CommitId |
exampleb01f91b31 |
#{SourceVariables.CommitId} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CommitMessage |
修正錯誤 (100 KB 大小上限) | #{SourceVariables.CommitMessage} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ConnectionArn |
AR: awn: 代碼星連接:區域:account-id :連接/connection-id |
#{SourceVariables.ConnectionArn} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
FullRepositoryName |
使用者名稱/GitHubRepo | #{SourceVariables.FullRepositoryName} |
GitHub 動作輸出變數 (GitHub 動作版本 1)
GitHub 變數 (GitHub 動作版本 1) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
變數索引鍵 | 範例值 | 範例變數語法 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AuthorDate |
2019-10-29T03:32:21Z | #{SourceVariables.AuthorDate} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BranchName |
主要 | #{SourceVariables.BranchName} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CommitId |
exampleb01f91b31 |
#{SourceVariables.CommitId} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CommitMessage |
修正錯誤 (100 KB 大小上限) |
#{SourceVariables.CommitMessage} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CommitterDate |
2019-10-29T03:32:21Z | #{SourceVariables.CommitterDate} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CommitUrl |
#{SourceVariables.CommitUrl} |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
RepositoryName |
myGitHub回購 | #{SourceVariables.RepositoryName} |
S3 動作輸出變數
S3 變數 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
變數索引鍵 | 範例值 | 範例變數語法 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ETag |
example28be1c3 | #{SourceVariables.ETag} |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
VersionId |
例子 IUQCv | #{SourceVariables.VersionId} |
使用使用者設定之變數金鑰的
對於 CodeBuild AWS CloudFormation、和 Lambda 動作而言,變數金鑰是由使用者設定的。
CloudFormation 動作輸出變數
AWS CloudFormation 變數 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
變數索引鍵 | 範例變數語法 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
對於 AWS CloudFormation 動作,變數是從堆疊範本
|
#{DeployVariables.StackName} |
CodeBuild 動作輸出變數
CodeBuild 變數 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
變數索引鍵 | 範例變數語法 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
對於 CodeBuild 動作,變數是從匯出的環境變數產生的值產生的。透過在中編輯您的 CodeBuild動作, CodePipeline 或將 CodeBuild 環境變數新增至建構規格,來設定環境變數。 將指示添加到您的 CodeBuild 構建規範中,以在導出的變量部分下添加環境變量。請參閱《用戶指南》中的〈導出/導出變量〉。AWS CodeBuild |
|
動 Lambda 輸出變數
Lambda 变量 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
變數索引鍵 | 範例變數語法 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Lambda 動作會產生作為變數所包含在PutJobSuccessResult API請求outputVariables 區段中的所有索引鍵值對。如需具有 Lambda 動作的教學課程,該動作使用上游動作 (CodeCommit) 中的變數並產生輸出變數,請參閱教學課程:搭配 Lambda 叫用動作使用變。 |
#{TestVariables.testRunId} |