使用變數 - AWS CodePipeline

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

使用變數

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

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

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

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

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

設定變數的動作

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

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

此範例會建立包含 CodeCommit 來源動作和 CodeBuild 建置動作的管線。 CodeBuild 動作會設定為使用動 CodeCommit 作所產生的變數。

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

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

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

  3. 來源中的提供者中,選擇CodeCommit。選擇來源動作的 CodeCommit 存放庫和分支,然後選擇 [下一步]。

  4. 組建中的提供者中,選擇CodeBuild。選擇現有的 CodeBuild 組建專案名稱或選擇 [建立專案]。在 [建立組建專案] 上,建立組建專案,然後選擇 [返回至] CodePipeline。

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

    注意

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

  5. 選擇 Create (建立)。

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

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

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

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

檢視輸出變數
  1. 請登入 AWS Management Console 並開啟 CodePipeline 主控台,網址為 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 Management Console 並開啟 CodePipeline 主控台,網址為 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 Management Console 並開啟 CodePipeline 主控台,網址為 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 Management Console 並開啟 CodePipeline 主控台,網址為 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 環境變量的值。在此範例中,環境變數 Name 為,BranchNameValue 是 GitHub 來源動作中已解析的BranchName輸出變數。在此範例中,解析值為main

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