View a markdown version of this page

使用變數 - AWS CodePipeline

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

使用變數

CodePipeline 中的某些動作會產生變數。若要使用變數:

  • 請將命名空間指派給動作,使該動作產生的變數可供下游動作組態使用。

  • 請設定下游動作來取用該動作所產生的變數。

    您可以檢視每個動作執行的詳細資料,以查看動作在執行階段產生的每個輸出變數的值。

若要查看使用變數的step-by-step範例:

設定變數的動作

當您將動作新增至管道時,您可以指派命名空間給此動作,並設定此動作使用先前動作的變數。

使用變數設定動作 (主控台)

此範例會建立具有 CodeCommit 來源動作和 CodeBuild 組建動作的管道。CodeBuild 動作設定為使用 CodeCommit 動作產生的變數。

如果未指定命名空間,則變數無法供動作組態中參考。當您使用主控台建立管道時,系統會自動產生每個動作的命名空間。

建立具有變數的管道
  1. 登入 AWS 管理主控台 並開啟 CodePipeline 主控台,網址為 https://http://console.aws.amazon.com/codesuite/codepipeline/home。

  2. 選擇 Create pipeline (建立管道)。輸入管道的名稱,然後選擇 Next (下一步)。

  3. 在 Source (來源) 的 Provider (提供者) 中,選擇 CodeCommit。選擇來源動作的 CodeCommit 儲存庫和分支,然後選擇下一步。

  4. 在 Build (建置) 的 Provider (提供者) 中,選擇 CodeBuild。選擇現有的 CodeBuild 組建專案名稱,或選擇建立專案。在 Create build project (建立組建專案) 上,建立組建專案,然後選擇 Return to CodePipeline (返回 CodePipeline)。

    在 Environment variables (環境變數) 下,選擇 Add environment variables (新增環境變數)。例如,使用變數語法 輸入執行 ID,#{codepipeline.PipelineExecutionId}並使用變數語法 輸入遞交 ID#{SourceVariables.CommitId}。

    注意

    您可以在精靈的任何動作組態欄位中輸入變數語法。

  5. 選擇建立。

  6. 管道建立之後,您可以檢視精靈所建立的命名空間。在管道上,選擇您要檢視命名空間之階段的圖示。在此範例中,將會顯示來源動作自動產生的命名空間 SourceVariables。

    範例:動作資訊畫面
編輯現有動作的命名空間
  1. 登入 AWS 管理主控台 並開啟 CodePipeline 主控台,網址為 https://http://console.aws.amazon.com/codesuite/codepipeline/home。

  2. 選擇您要編輯的管道,然後選擇 Edit (編輯)。針對來源階段,選擇 Edit stage (編輯階段)。新增 CodeCommit 動作。

  3. 在 Edit action (編輯動作) 上,檢視 Variable namespace (變數命名空間) 欄位。如果現有的動作是先前建立,或不是使用精靈來建立,您必須新增命名空間。在 Variable namespace (變數命名空間) 中,輸入命名空間名稱,然後選擇 Save (儲存)。

檢視輸出變數
  1. 登入 AWS 管理主控台 並開啟 CodePipeline 主控台,網址為 https://http://console.aws.amazon.com/codesuite/codepipeline/home。

  2. 建立管道並成功執行之後,您可以在 Action execution details (動作執行詳細資訊) 頁面上檢視變數。如需相關資訊,請參閱檢視變數 (主控台)。

設定變數的動作 (CLI)

當您使用 create-pipeline 命令建立管道,或使用 update-pipeline 命令編輯管道時,您可以在動作的組態中參考/使用變數。

如果未指定命名空間,則無法在任何下游動作組態中參考該動作產生的變數。

使用命名空間來設定動作
  1. 遵循建立管道、階段和動作中的步驟,使用 CLI 建立管道。啟動輸入檔案以提供 --cli-input-json 參數給 create-pipeline 命令。在管道結構中,新增 namespace 參數並指定名稱,例如 SourceVariables。

    . . . { "inputArtifacts": [], "name": "Source", "region": "us-west-2", "namespace": "SourceVariables", "actionTypeId": { "category": "Source", "owner": "AWS", "version": "1", "provider": "CodeCommit" }, "outputArtifacts": [ . . .
  2. 以類似 MyPipeline.json 的名稱儲存檔案。

  3. 在終端機 (Linux、macOS 或 Unix) 或命令提示字元 (Windows) 中,執行 create-pipeline命令並建立管道。

    呼叫您執行 create-pipeline 命令時建立的檔案。例如:

    aws codepipeline create-pipeline --cli-input-json file://MyPipeline.json
設定下游動作來取用變數
  1. 編輯輸入檔案以提供 --cli-input-json 參數給 update-pipeline 命令。在下游動作中,將變數新增至該動作的組態。變數由名稱空間和索引鍵組成 (以句點分隔)。例如,若要為管道執行 ID 和來源遞交 ID 新增變數,請指定命名空間 codepipeline 給變數 #{codepipeline.PipelineExecutionId}。指定命名空間 SourceVariables 給變數 #{SourceVariables.CommitId}。

    { "name": "Build", "actions": [ { "outputArtifacts": [ { "name": "BuildArtifacts" } ], "name": "Build", "configuration": { "EnvironmentVariables": "[{\"name\":\"Execution_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 } ] },
  2. 以類似 MyPipeline.json 的名稱儲存檔案。

  3. 在終端機 (Linux、macOS 或 Unix) 或命令提示字元 (Windows) 中,執行 create-pipeline命令並建立管道。

    呼叫您執行 create-pipeline 命令時建立的檔案。例如:

    aws codepipeline create-pipeline --cli-input-json file://MyPipeline.json

檢視輸出變數

您可以檢視動作執行詳細資訊,以檢視該動作的變數 (每個執行所特有)。

檢視變數 (主控台)

您可以使用主控台來檢視動作的變數。

  1. 登入 AWS 管理主控台 並開啟 CodePipeline 主控台,網址為 https://http://console.aws.amazon.com/codesuite/codepipeline/home。

    與 AWS 您的帳戶相關聯的所有管道名稱都會顯示。

  2. 在 Name (名稱) 中,選擇管道的名稱。

  3. 選擇 View history (檢視歷程記錄)。

  4. 管道成功執行後,您可以檢視來源動作所產生的變數。選擇 View history (檢視歷程記錄)。在管道執行的動作清單中選擇來源,以檢視 CodeCommit 動作的動作執行詳細資訊。在動作詳細資訊畫面上,檢視 Output variables (輸出變數) 下的變數。

    範例:來源輸出變數
  5. 管道成功執行後,您可以檢視建置動作所取用的變數。選擇 View history (檢視歷程記錄)。在管道執行的動作清單中,選擇建置以檢視 CodeBuild 動作的動作執行詳細資訊。在動作詳細資訊頁面上,檢視 Action configuration (動作組態) 下的變數。將會顯示自動產生的命名空間。

    範例:動作組態變數

    根據預設,Action configuration (動作組態) 會顯示變數語法。您可以選擇 Show resolved configuration (顯示解析的組態),以切換清單來顯示動作執行期間產生的值。

    範例:解析的動作組態變數

檢視變數 (CLI)

您可以使用 list-action-executions 命令來檢視動作的變數。

  1. 使用下列命令:

    aws codepipeline list-action-executions

    輸出會顯示 outputVariables 參數,如下所示。

    "outputVariables": { "BranchName": "main", "CommitMessage": "Updated files for test", "AuthorDate": "2019-11-08T22:24:34Z", "CommitId": "d99b0083cc10EXAMPLE", "CommitterDate": "2019-11-08T22:24:34Z", "RepositoryName": "variables-repo" },
  2. 使用下列命令:

    aws codepipeline get-pipeline --name <pipeline-name>

    在 CodeBuild 動作的動作組態中,您可以檢視變數:

    { "name": "Build", "actions": [ { "outputArtifacts": [ { "name": "BuildArtifact" } ], "name": "Build", "configuration": { "EnvironmentVariables": "[{\"name\":\"Execution_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 } ] },

範例:在手動核准中使用變數

當您指定動作的命名空間,而該動作會產生輸出變數時,您可以新增手動核准,在核准訊息中顯示變數。此範例示範如何將變數語法新增至手動核准訊息。

  1. 登入 AWS 管理主控台 並開啟 CodePipeline 主控台,網址為 https://http://console.aws.amazon.com/codesuite/codepipeline/home。

    與 AWS 您的帳戶相關聯的所有管道名稱都會顯示。選擇您要新增核准的管道。

  2. 若要編輯管道,請選擇 Edit (編輯)。在來源動作之後新增手動核准。在 Action name (動作名稱) 中,輸入核准動作的名稱。

  3. 在 Action provider (動作提供者) 中,選擇 Manual approval (手動核准)。

  4. 在要檢閱的 URL 中,將 的變數語法CommitId新增至 CodeCommit URL。請確定您使用指派給來源動作的命名空間。例如,具有預設命名空間之 CodeCommit 動作的變數語法SourceVariables為 #{SourceVariables.CommitId}。

    在註解的 中CommitMessage,輸入遞交訊息:

    Please approve this change. Commit message: #{SourceVariables.CommitMessage}
  5. 管道成功執行後,您可以檢視核准訊息中的變數值。

範例:搭配 CodeBuild 環境變數使用 BranchName 變數

當您將 CodeBuild 動作新增至管道時,您可以使用 CodeBuild 環境變數來參考上游來源動作的BranchName輸出變數。透過 CodePipeline 中 動作的輸出變數,您可以建立自己的 CodeBuild 環境變數,以便在建置命令中使用。

此範例說明如何將輸出變數語法從 GitHub 來源動作新增至 CodeBuild 環境變數。此範例中的輸出變數語法代表 的 GitHub 來源動作輸出變數BranchName。動作成功執行後,變數會解析以顯示 GitHub 分支名稱。

  1. 登入 AWS 管理主控台 並開啟 CodePipeline 主控台,網址為 https://http://console.aws.amazon.com/codesuite/codepipeline/home。

    與 AWS 您的帳戶相關聯的所有管道名稱都會顯示。選擇您要新增核准的管道。

  2. 若要編輯管道,請選擇 Edit (編輯)。在包含 CodeBuild 動作的階段上,選擇編輯階段。

  3. 選擇 圖示以編輯 CodeBuild 動作。

  4. 在編輯動作頁面的環境變數下,輸入下列內容:

    • 在名稱中,輸入環境變數的名稱。

    • 在值中,輸入管道輸出變數的變數語法,其中包含指派給來源動作的命名空間。例如,具有預設命名空間的 GitHub 動作的輸出變數語法SourceVariables為 #{SourceVariables.BranchName}。

    • 在類型中,選擇純文字。

  5. 管道成功執行後,您可以查看解析的輸出變數是環境變數中的值。選擇下列其中一項:

    • CodePipeline 主控台:選擇管道,然後選擇歷史記錄。選擇最新的管道執行。

      • 在時間軸下,選擇來源的選擇器。這是產生 GitHub 輸出變數的來源動作。選擇檢視執行詳細資訊。在輸出變數下,檢視此動作產生的輸出變數清單。

      • 在時間軸下,選擇建置選擇器。這是為組建專案指定 CodeBuild 環境變數的組建動作。選擇檢視執行詳細資訊。在動作組態下,檢視 CodeBuild 環境變數。選擇顯示已解析的組態。您的環境變數值是從 GitHub 來源動作解析的BranchName輸出變數。在此範例中,解析的值為 main。

        如需詳細資訊,請參閱檢視變數 (主控台)。

    • CodeBuild 主控台:選擇您的建置專案,然後選擇建置執行的連結。在環境變數下,您解析的輸出變數是 CodeBuild 環境變數的值。在此範例中,環境變數名稱為 ,BranchName而值是從 GitHub 來源動作解析的BranchName輸出變數。在此範例中,解析的值為 main。

    顯示主控台中已解析變數的螢幕擷取畫面