変数の操作 - AWS CodePipeline

変数の操作

CodePipeline のアクションの中には、変数を生成するものがあります。変数を使用するには、次の手順に従います。

  • 名前空間をアクションに割り当てて、生成する変数をダウンストリームアクション設定で使用できるようにします。

  • ダウンストリームアクションは、アクションによって生成された変数を消費するよう設定します。

    各アクションの実行の詳細を表示して、実行時にアクションによって生成された各出力変数の値を確認できます。

変数のリファレンス情報、ワークフローの例、および出力変数を生成するアクションのリストについては、「Variables」を参照してください。

変数のアクションを設定する

パイプラインにアクションを追加すると、そのアクションに名前空間を割り当て、以前のアクションの変数を消費するように設定できます。

変数のアクションを設定する (コンソール)

この例では、CodeCommit ソースアクションと CodeBuild ビルドアクションを含むパイプラインを作成します。CodeBuild アクションは、CodeCommit アクションによって生成された変数を消費するよう設定されています。

名前空間が指定されていない場合、変数はアクション設定で参照できません。コンソールを使用してパイプラインを作成すると、各アクションの名前空間が自動的に生成されます。

変数を使用してパイプラインを作成するには

  1. AWS マネジメントコンソール にサインインし、CodePipeline コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home) を開きます。

  2. [Create pipeline] を選択します。パイプラインに名前を入力し、[Next (次へ)] を選択します。

  3. [ソース] の [プロバイダ] で、[CodeCommit] を選択します。ソースアクションの CodeCommit リポジトリとブランチを選択し、[Next (次へ)] を選択します。

  4. [ビルド] の [プロバイダ] で [CodeBuild] を選択します。既存の CodeBuild ビルドプロジェクト名を選択するか、[Create project (プロジェクトを作成)] を選択します。[Create build project (ビルドプロジェクトを作成)] で、ビルドプロジェクトを作成し、[Return to CodePipeline (CodePipeline に戻る)] を選択します。

    [環境変数] の下で、[Add environment variables (環境変数を追加)] を選択します。この例では、実行 ID を変数構文 #{codepipeline.PipelineExecutionId} で入力し、コミット ID を変数構文 #{SourceVariables.CommitId} で入力します。

    
                            例: 複数のアクションの変数
    注記

    変数構文は、ウィザードの任意のアクション設定フィールドに入力できます。

  5. [Create] を選択します。

  6. パイプラインが作成されたら、ウィザードによって作成された名前空間を表示できます。パイプラインで、名前空間を表示するステージのヘルプペインアイコンを選択します。この例では、ソースアクションの自動生成された名前空間、SourceVariables が表示されます。

    
                            例: アクション情報画面

既存のアクションの名前空間を編集するには

  1. AWS マネジメントコンソール にサインインし、CodePipeline コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home) を開きます。

  2. 編集するパイプラインを選択して [編集] を選択します。ソースステージで、[Edit stage (ステージを編集)] を選択します。CodeCommit アクションを追加します。

  3. [アクションの編集] で、[Variable namespace (変数の名前空間)] フィールドを表示します。既存のアクションが以前に作成された場合、またはウィザードを使用せずに作成された場合は、名前空間を追加する必要があります。[Variable namespace (変数の名前空間)] に名前空間名を入力し、[Save (保存)] を選択します。

    
                            例: [アクションの編集] 画面の名前空間

出力変数を表示するには

  1. AWS マネジメントコンソール にサインインし、CodePipeline コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home) を開きます。

  2. パイプラインが作成され、正常に実行されたら、[Action execution details (アクションの実行詳細)] ページで変数を表示できます。詳細については、変数を表示する (コンソール) を参照してください。

変数のアクションを設定する (CLI)

create-pipeline コマンドを使用してパイプラインを作成するか、update-pipeline コマンドを使用してパイプラインを編集する場合は、アクションの設定で変数を参照したり、使用したりできます。

名前空間が指定されていない場合、アクションによって生成された変数は、ダウンストリームアクション設定で参照することはできません。

名前空間でアクションを設定するには

  1. CodePipeline でパイプラインを作成する」の手順 に従って、CLI を使用してパイプラインを作成します。入力ファイルを起動して、create-pipeline コマンドに --cli-input-json パラメータを指定します。パイプライン構造で、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, or Unix) またはコマンドプロンプト (Windows) で、create-pipeline コマンドを実行し、パイプラインを作成します。

    create-pipeline コマンドを実行したときに作成したファイルを呼び出します。次に例を示します。

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

変数を消費するダウンストリームアクションを設定するには

  1. 入力ファイルを編集して、update-pipeline コマンドに --cli-input-json パラメータを指定します。ダウンストリームアクションで、そのアクションの設定に変数を追加します。変数は、ピリオドで区切られた名前空間とキーで構成されます。たとえば、パイプライン実行 ID とソースコミット ID の変数を追加するには、変数 #{codepipeline.PipelineExecutionId} に変数の名前空間 codepipeline を指定します。変数の #{SourceVariables.CommitId} 名前空間 SourceVariables を指定します。

    { "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, or Unix) またはコマンドプロンプト (Windows) で、create-pipeline コマンドを実行し、パイプラインを作成します。

    create-pipeline コマンドを実行したときに作成したファイルを呼び出します。次に例を示します。

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

出力変数を表示する

アクション実行の詳細を表示して、各実行に固有のアクションの変数を表示できます。

変数を表示する (コンソール)

コンソールを使用して、アクションの変数を表示できます。

  1. AWS マネジメントコンソール にサインインし、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 アクションのアクション実行の詳細を表示します。アクションの詳細ページで、[アクション設定] の下にある変数を表示します。自動生成された名前空間が表示されます。

    
                            例: アクション設定変数

    デフォルトでは、[アクション設定] には変数の構文が表示されます。[Show resolved configuration (解決された設定を表示)] を選択して、アクションの実行中に生成された値を表示するようにリストを切り替えることができます。

    
                            例: 解決済みアクション設定変数

変数を表示する (CLI)

list-action-executions コマンドを使用して、アクションの変数を表示できます。

  1. 次のコマンドを使用します。

    aws codepipeline list-action-executions

    出力には、次に示すように outputVariables パラメータが表示されます。

    "outputVariables": { "BranchName": "master", "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 コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home) を開きます。

    AWS アカウントに関連付けられているすべてのパイプラインの名前が表示されます。承認を追加するパイプラインを選択します。

  2. パイプラインを編集するには、[編集] を選択します。ソースアクションの後に、手動承認を追加します。[アクション名] に、承認処理の名前を入力します。

  3. [アクションプロバイダ] で、[手動承認] を選択します。

  4. [レビューする URL:] および [コメント]で、図のように、CommitId および CommitMessage に変数構文を追加します。ソースアクションに割り当てられた名前空間をかならず使用してください。たとえば、デフォルトの名前空間である SourceVariables を持つ CodeCommit アクションに対する変数構文は、#{SourceVariables.CommitId} です。

  5. パイプラインが正常に実行されると、承認メッセージに変数の値を表示できます。