変数の操作
CodePipeline のアクションの中には、変数を生成するものがあります。変数を使用するには、次の手順に従います。
-
名前空間をアクションに割り当てて、生成する変数をダウンストリームアクション設定で使用できるようにします。
-
ダウンストリームアクションは、アクションによって生成された変数を消費するよう設定します。
各アクションの実行の詳細を表示して、実行時にアクションによって生成された各出力変数の値を確認できます。
変数の使用についてのステップバイステップの例は次のとおりです。
-
アップストリームアクション (CodeCommit) の変数を使用し、出力変数を生成する Lambda アクションのチュートリアルについては、「チュートリアル 変数の使用 Lambda アクションの呼び出し」を参照してください。
-
アップストリーム AWS CloudFormation アクションからのスタック出力変数を参照する CloudFormation アクションがあるチュートリアルについては、「チュートリアル: デプロイアクションの変数を使用するパイプラインを作成するAWS CloudFormation」を参照してください。
-
コミット ID とコミットメッセージに解決される出力変数を参照するメッセージテキストを含む手動承認アクションの例については、「CodeCommit」を参照してください。例: 手動承認で変数を使用する
-
ブランチ名に解決される環境変数を持つ CodeBuild アクションの例については、「GitHub」を参照してください。例: 環境変数で BranchName 変数を使用するCodeBuild
-
CodeBuild アクションは、ビルドの一部としてエクスポートされたすべての環境変数を変数として生成します。詳細については、「CodeBuild アクションの出力変数」を参照してください。
変数のアクションを設定する
パイプラインにアクションを追加すると、そのアクションに名前空間を割り当て、以前のアクションの変数を消費するように設定できます。
変数のアクションを設定する (コンソール)
この例では、CodeCommit ソースアクションと CodeBuild ビルドアクションを含むパイプラインを作成します。CodeBuild アクションは、CodeCommit アクションによって生成された変数を消費するよう設定されています。
名前空間が指定されていない場合、変数はアクション設定で参照できません。コンソールを使用してパイプラインを作成すると、各アクションの名前空間が自動的に生成されます。
変数を使用してパイプラインを作成するには
-
AWS マネジメントコンソール にサインインし、CodePipeline コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home
) を開きます。 -
[Create pipeline] を選択します。パイプラインに名前を入力し、[Next (次へ)] を選択します。
-
[ソース] の [プロバイダ] で、[CodeCommit] を選択します。 ソースアクションの CodeCommit リポジトリとブランチを選択し、[次へ] を選択します。
-
[ビルド] の [プロバイダ] で、[CodeBuild] を選択します。 既存の CodeBuild ビルドプロジェクト名を選択するか、[プロジェクトの作成] を選択します。[Create build project] で、ビルドプロジェクトを作成し、[Return to CodePipeline] を選択します。
[環境変数] の下で、[Add environment variables (環境変数を追加)] を選択します。この例では、実行 ID を変数構文
#{codepipeline.PipelineExecutionId}
で入力し、コミット ID を変数構文#{SourceVariables.CommitId}
で入力します。注記 変数構文は、ウィザードの任意のアクション設定フィールドに入力できます。
-
[作成] を選択します。
-
パイプラインが作成されたら、ウィザードによって作成された名前空間を表示できます。パイプラインで、名前空間を表示するステージのアイコンを選択します。この例では、ソースアクションの自動生成された名前空間、
SourceVariables
が表示されます。
既存のアクションの名前空間を編集するには
-
AWS マネジメントコンソール にサインインし、CodePipeline コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home
) を開きます。 -
編集するパイプラインを選択して [編集] を選択します。ソースステージで、[Edit stage (ステージを編集)] を選択します。CodeCommit アクションを追加します。
-
[アクションの編集] で、[Variable namespace (変数の名前空間)] フィールドを表示します。既存のアクションが以前に作成された場合、またはウィザードを使用せずに作成された場合は、名前空間を追加する必要があります。[Variable namespace (変数の名前空間)] に名前空間名を入力し、[Save (保存)] を選択します。
出力変数を表示するには
-
AWS マネジメントコンソール にサインインし、CodePipeline コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home
) を開きます。 -
パイプラインが作成され、正常に実行されたら、[Action execution details (アクション実行の詳細)] ページで変数を表示できます。詳細については、変数を表示する (コンソール) を参照してください。
変数のアクションを設定する (CLI)
create-pipeline コマンドを使用してパイプラインを作成するか、update-pipeline コマンドを使用してパイプラインを編集する場合は、アクションの設定で変数を参照したり、使用したりできます。
名前空間が指定されていない場合、アクションによって生成された変数は、ダウンストリームアクション設定で参照することはできません。
名前空間でアクションを設定するには
-
「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": [ . . . -
MyPipeline.json
のような名前でファイルを保存します。 -
ターミナル (Linux, macOS, or Unix) またはコマンドプロンプト (Windows) で、create-pipeline コマンドを実行し、パイプラインを作成します。
create-pipeline コマンドを実行したときに作成したファイルを呼び出します。次に例を示します。
aws codepipeline create-pipeline --cli-input-json file://MyPipeline.json
変数を消費するダウンストリームアクションを設定するには
-
入力ファイルを編集して、update-pipeline コマンドに
--cli-input-json
パラメータを指定します。ダウンストリームアクションで、そのアクションの設定に変数を追加します。変数は、ピリオドで区切られた名前空間とキーで構成されます。たとえば、パイプライン実行 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 } ] },
-
MyPipeline.json
のような名前でファイルを保存します。 -
ターミナル (Linux, macOS, or Unix) またはコマンドプロンプト (Windows) で、create-pipeline コマンドを実行し、パイプラインを作成します。
create-pipeline コマンドを実行したときに作成したファイルを呼び出します。次に例を示します。
aws codepipeline create-pipeline --cli-input-json file://MyPipeline.json
出力変数を表示する
アクション実行の詳細を表示して、各実行に固有のアクションの変数を表示できます。
変数を表示する (コンソール)
コンソールを使用して、アクションの変数を表示できます。
-
AWS マネジメントコンソール にサインインし、CodePipeline コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home
) を開きます。 AWS アカウントに関連付けられているすべてのパイプラインの名前が表示されます。
-
[Name] で、パイプラインの名前を選択します。
-
[View history (履歴の表示)] を選択します。
-
パイプラインが正常に実行されると、ソースアクションによって生成された変数を表示できます。[View history (履歴の表示)] を選択します。パイプライン実行のアクションリストで [ソース] を選択して、CodeCommit アクションのアクション実行の詳細を表示します。アクションの詳細画面で、[Output variables (出力変数)] の下の変数を表示します。
-
パイプラインが正常に実行されると、ビルドアクションによって消費される変数を表示できます。[View history (履歴の表示)] を選択します。パイプライン実行のアクションリストで、[ビルド] を選択して、CodeBuild アクションのアクション実行の詳細を表示します。アクションの詳細ページで、[アクション設定] の下にある変数を表示します。自動生成された名前空間が表示されます。
デフォルトでは、[アクション設定] には変数の構文が表示されます。[Show resolved configuration (解決された設定を表示)] を選択して、アクションの実行中に生成された値を表示するようにリストを切り替えることができます。
変数を表示する (CLI)
list-action-executions コマンドを使用して、アクションの変数を表示できます。
-
次の コマンドを使用します。
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" },
-
次の コマンドを使用します。
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 } ] },
例: 手動承認で変数を使用する
アクションの名前空間を指定し、そのアクションが出力変数を生成する場合、承認メッセージに変数を表示する手動承認を追加できます。この例では、手動承認メッセージに可変構文を追加する方法を示します。
-
AWS マネジメントコンソール にサインインし、CodePipeline コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home
) を開きます。 AWS アカウントに関連付けられているすべてのパイプラインの名前が表示されます。承認を追加するパイプラインを選択します。
-
パイプラインを編集するには、[編集] を選択します。ソースアクションの後に、手動承認を追加します。[アクション名] に、承認処理の名前を入力します。
-
[アクションプロバイダ] で、[手動承認] を選択します。
-
[レビューする URL:] および [コメント]で、図のように、
CommitId
およびCommitMessage
に変数構文を追加します。ソースアクションに割り当てられた名前空間をかならず使用してください。たとえば、デフォルトの名前空間であるSourceVariables
を持つ CodeCommit アクションに対する変数構文は、#{SourceVariables.CommitId}
です。 -
パイプラインが正常に実行されると、承認メッセージに変数の値を表示できます。
例: 環境変数で BranchName 変数を使用するCodeBuild
アクションをパイプラインに追加すると、CodeBuild 環境変数を使用して、アップストリームソースアクションの CodeBuild 出力変数を参照できます。BranchName
のアクションの出力変数を使用して、ビルドコマンドで使用する独自の CodePipeline 環境変数を作成できます。CodeBuild
この例では、GitHub ソースアクションの出力変数構文を CodeBuild 環境変数に追加する方法を示します。この例の出力変数構文は、GitHub の BranchName
ソースアクション出力変数を表します。 アクションが正常に実行されると、変数は解決して GitHub ブランチ名を表示します。
-
AWS マネジメントコンソール にサインインし、CodePipeline コンソール (http://console.aws.amazon.com/codesuite/codepipeline/home
) を開きます。 AWS アカウントに関連付けられているすべてのパイプラインの名前が表示されます。承認を追加するパイプラインを選択します。
-
パイプラインを編集するには、[編集] を選択します。アクションを含むステージで、[CodeBuildステージを編集] を選択します。
-
アイコンを選択して、CodeBuild アクションを編集します。
-
[アクションの編集] ページの [環境変数] で、次のように入力します。
-
[名前] に、環境変数の名前を入力します。
-
[値] に、パイプライン出力変数の変数構文を入力します。これには、ソースアクションに割り当てられた名前空間が含まれます。たとえば、デフォルトの名前空間 GitHub を持つ
SourceVariables
アクションの出力変数構文は、#{SourceVariables.BranchName}
です。 -
[Type] で、[Plaintext] を選択します。
-
-
パイプラインが正常に実行されたら、解決された出力変数が環境変数の値であることを確認できます。次のいずれかを選択します。
-
CodePipeline コンソール: パイプラインを選択してから、[History (履歴)] を選択します。最新のパイプライン実行を選択します。
-
[Timeline (タイムライン)] で、[Source (ソース)] のセレクタを選択します。これは、GitHub 出力変数を生成するソースアクションです。[View execution details] を選択します。[出力変数] で、このアクションによって生成された出力変数のリストを表示します。
-
[Timeline (タイムライン)] で、[Build (ビルド)] のセレクタを選択します。これは、ビルドプロジェクトの CodeBuild 環境変数を指定するビルドアクションです。[View execution details] を選択します。[アクション設定] で、CodeBuild 環境変数を表示します。[Show resolved configuration (解決された設定を表示)] を選択します。環境変数の値は、
BranchName
ソースアクションの解決された GitHub 出力変数です。この例では、解決された値はmain
です。詳細については、「変数を表示する (コンソール)」を参照してください。
-
-
CodeBuild コンソール: ビルドプロジェクトを選択し、ビルド実行のリンクを選択します。[環境変数] で、解決された出力変数は CodeBuild 環境変数の値です。この例では、環境変数 Name は
BranchName
であり、Value はBranchName
ソースアクションから解決された GitHub 出力変数です。この例では、解決された値はmain
です。
-