変数リファレンス - AWS CodePipeline

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

変数リファレンス

このセクションは参照のみを目的としています。変数の作成については、「変数の操作」を参照してください。

変数を使用すると、パイプラインの実行時またはアクションの実行時に決定される値でパイプラインアクションを設定できます。

一部のアクションプロバイダは、変数の定義されたセットを生成します。コミット ID など、そのアクションプロバイダのデフォルトの変数キーから選択します。

重要

シークレットパラメータを渡すときは、値を直接入力しないでください。値はプレーンテキストとしてレンダリングされるため、読み取り可能です。セキュリティ上の理由から、シークレットを含むプレーンテキストは使用しないでください。シークレットの保存 AWS Secrets Manager には を使用することを強くお勧めします。

変数を使用するためのステップバイステップの例を参照するには:

変数の制限

制限の詳細については、「AWS CodePipeline のクォータ」を参照してください。

注記

アクション設定フィールドに変数構文を入力する場合は、設定フィールドの 1,000 文字制限を超えないようにしてください。この制限を超えると、検証エラーが返されます。

概念

このセクションでは、変数と名前空間に関連する主要な用語と概念を示します。

[変数]

変数は、パイプラインでアクションを動的に設定するために使用できるキーと値のペアです。現在、これらの変数を使用可能にする方法は 3 つあります。

  • 各パイプライン実行の開始時に暗黙的に使用できる一連の変数があります。このセットには PipelineExecutionId、現在のパイプライン実行の ID が含まれています。

  • パイプラインレベルの変数は、パイプラインの作成時に定義され、パイプラインの実行時に解決されます。

    パイプラインの作成時にパイプラインレベルの変数を指定し、パイプラインの実行時にその値を設定できます。

  • 実行時に変数のセットを生成するアクションタイプがあります。アクションによって生成された変数は、outputVariablesの一部である ListActionExecutions APIフィールドを確認できます。アクションプロバイダごとに使用できるキー名のリストについては、「パイプラインアクションで使用できる変数」を参照してください。各アクションタイプによって生成される変数については、CodePipeline 「アクション構造リファレンス」を参照してください。

アクション設定でこれらの変数を参照するには、正しい名前空間で変数リファレンス構文を使用する必要があります。

変数ワークフローの例については、「変数の設定 」を参照してください。

名前空間

変数を一意に参照できるようにするには、変数を名前空間に割り当てる必要があります。名前空間に変数のセットを割り当てた後、次の構文で名前空間と変数キーを使用して、アクション設定で変数を参照できます。

#{namespace.variable_key}

変数を割り当てることができる名前空間には、次の 3 種類があります。

  • codepipeline 予約済み名前空間

    これは、各パイプライン実行の開始時に利用可能な暗黙的な変数のセットに割り当てられた名前空間です。この名前空間は codepipeline です。変数リファレンスの例:

    #{codepipeline.PipelineExecutionId}
  • パイプラインレベルの変数の名前空間

    これは、パイプラインレベルの変数に割り当てられる名前空間です。パイプラインレベルのすべての変数の名前空間は variables です。変数リファレンスの例:

    #{variables.variable_name}
  • アクションに割り当てられた名前空間

    これは、アクションに割り当てる名前空間です。アクションによって生成されるすべての変数は、この名前空間に属します。アクションによって生成された変数をダウンストリームアクション設定で使用できるようにするには、生成アクションを名前空間で設定する必要があります。名前空間はパイプライン定義全体で一意でなければならず、アーティファクト名と競合することはできません。次に、SourceVariables の名前空間で設定されたアクションの変数リファレスの例を示します。

    #{SourceVariables.VersionId}

変数のユースケース

以下に、パイプラインレベルの変数の最も一般的な使用例をいくつか示します。これらは、特定のニーズに合わせて変数をどのように使用するかを決定するのに役立ちます。

  • パイプラインレベルの変数は、アクション設定への入力にわずかな変更を加えて、毎回同じパイプラインを使用したいと考える CodePipeline ユーザー向けです。パイプラインを開始するどの開発者も、パイプラインの開始時は UI に変数値を追加します。この設定では、その実行にのみ使用するパラメータを渡します。

  • パイプラインレベルの変数を使用すると、パイプライン内のアクションに動的な入力を渡すことができます。同じパイプラインの異なるバージョンを管理したり、複雑なパイプラインを作成したりすることなく、パラメータ化されたパイプラインを CodePipeline に移行できます。

  • パイプラインレベルの変数を使用して入力パラメータを渡すことで、実行ごとにパイプラインを再利用できます。例えば、本番環境にデプロイするバージョンを指定する場合に、パイプラインを複製する必要がなくなります。

  • 1 つのパイプラインを使用して、複数のビルド環境とデプロイ環境にリソースをデプロイできます。例えば、CodeCommit リポジトリを含むパイプラインでは、指定したブランチとターゲットデプロイ環境からのデプロイを、パイプラインレベルで渡される CodeBuild パラメータと CodeDeploy パラメータを使用して行うことができます。

変数の設定

パイプラインレベルまたはアクションレベルの変数は、パイプライン構造で設定できます。

パイプラインレベルの変数を設定する

パイプラインレベルで 1 つ以上の変数を追加できます。この値は CodePipeline アクションの設定で参照できます。パイプラインを作成するときに、変数名、デフォルト値、説明を追加できます。変数は実行時に解決されます。

注記

パイプラインレベルの変数にデフォルト値が定義されていない場合、その変数は必須とみなされます。パイプラインの開始時には、必須のすべての変数に対して上書きを指定する必要があります。指定しない場合、パイプラインの実行は検証エラーで失敗します。

パイプライン構造の変数属性を使用して、パイプラインレベルの変数を指定します。以下の例では、変数 Variable1 の値は Value1 です。

"variables": [ { "name": "Variable1", "defaultValue": "Value1", "description": "description" } ]

パイプライン JSON 構造の例については、「パイプライン、ステージ、アクションを作成する」を参照してください。

パイプラインの実行時に渡されるパイプラインレベルの変数のチュートリアルについては、「チュートリアル: パイプラインレベルの変数を使用する」を参照してください。

パイプラインレベルの変数を任意の種類のソースアクションで使用することはできません。

注記

variables 名前空間がパイプライン内のいくつかのアクションで既に使用されている場合、アクション定義を更新し、競合するアクションに別の名前空間を選択する必要があります。

アクションレベルの変数の設定

アクションの名前空間を宣言して、変数を生成するようにアクションを設定します。アクションは、すでに変数を生成するアクションプロバイダの 1 つであることが必要です。それ以外の場合、使用可能な変数はパイプラインレベルの変数です。

名前空間は、次のいずれかの方法で宣言します。

  • コンソールの [アクションの編集] ページで、[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 } ] },

次に、前のアクションによって生成された変数を使用するようにダウンストリームアクションを設定します。これは次の方法で行います。

  • コンソールの [アクションの編集] ページで、アクション設定フィールドに変数構文 (ダウンストリームアクション用) を入力します。

  • JSON パイプライン構造のアクション設定フィールドに変数構文 (ダウンストリームアクション用) を入力する

この例では、ビルドアクションの設定フィールドには、アクションの実行時に更新される環境変数が表示されます。この例では、#{codepipeline.PipelineExecutionId} で実行 ID の名前空間と変数を指定し、コミット ID には #{SourceVariables.CommitId} で名前空間と変数を指定します。

{ "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 は、アクションの実行を開始する前の設定に存在するすべての変数リファレスを解決します。

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

変数のルール

次のルールは、変数の設定に役立ちます。

  • アクションの名前空間と変数を指定するには、新しいアクションプロパティを使用するか、アクションを編集します。

  • パイプライン作成ウィザードを使用すると、ウィザードで作成された各アクションの名前空間がコンソールによって生成されます。

  • 名前空間が指定されていない場合、そのアクションによって生成された変数は、どのアクション設定でも参照できません。

  • アクションによって生成された変数を参照するには、参照アクションは、変数を生成するアクションの後に発生する必要があります。これは、変数を生成するアクションよりも後の段階にあるか、同じ段階にあるが、より高い実行順序にあることを意味します。

パイプラインアクションで使用できる変数

アクションプロバイダは、アクションによって生成できる変数を決定します。

変数を管理するステップバイステップの手順については、「変数の操作」を参照してください。

定義された変数キーを持つアクション

選択できる名前空間とは異なり、ほとんどの変数キーは編集できません。たとえば、Amazon S3 アクションプロバイダの場合、ETag および VersionId 変数キーのみを使用できます。

各実行には、パイプラインリリース ID など、実行に関するデータを含む CodePipeline で生成されたパイプライン変数のセットもあります。これらの変数は、パイプライン内の任意のアクションで消費できます。

CodePipeline 実行 ID 変数

CodePipeline 実行 ID 変数
プロバイダー 変数キー 値の例 変数構文例
codepipeline PipelineExecutionId 8abc75f0-fbf8-4f4c-bfEXAMPLE #{codepipeline.PipelineExecutionId}

Amazon ECR アクションの出力変数

Amazon ECR 変数
変数キー 値の例 変数構文例
ImageDigest sha256:EXAMPLE1122334455 #{SourceVariables.ImageDigest}
ImageTag 最新 #{SourceVariables.ImageTag}
ImageURI 11111EXAMPLE.dkr.ecr.us-west-2.amazonaws.com/ecs-repo:latest #{SourceVariables.ImageURI}
RegistryId EXAMPLE12233 #{SourceVariables.RegistryId}
RepositoryName my-image-repo #{SourceVariables.RepositoryName}

AWS CloudFormation StackSets アクション出力変数

AWS CloudFormation StackSets 変数
変数キー 値の例 変数構文例
OperationId 11111111-2bbb-111-2bbb-11111 例 #{DeployVariables.OperationId}
StackSetId my-stackset: 1111aaa-1111-2222-2bbb-11111 例 #{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 myCodeCommitRepo #{SourceVariables.RepositoryName}

CodeStarSourceConnection アクションの出力変数

CodeStarSourceConnection 変数 (Bitbucket Cloud、GitHub、GitHub Enterprise Repository、および GitLab.com)
変数キー 値の例 変数構文例
AuthorDate 2019-10-29T03:32:21Z #{SourceVariables.AuthorDate}
BranchName 開発 #{SourceVariables.BranchName}
CommitId

exampleb01f91b31

#{SourceVariables.CommitId}
CommitMessage バグを修正 (最大サイズ 100 KB ) #{SourceVariables.CommitMessage}
ConnectionArn arn:aws:codestar-connections:region: account-id :connection/ connection-id #{SourceVariables.ConnectionArn}
FullRepositoryName Username/GitHubRepo #{SourceVariables.FullRepositoryName}

GitHub アクション出力変数 (GitHub (OAuth アプリ経由) アクション)

GitHub 変数 (GitHub (OAuth アプリ経由) アクション)
変数キー 値の例 変数構文例
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 myGitHubRepo #{SourceVariables.RepositoryName}

S3 アクションの出力変数

S3 変数
変数キー 値の例 変数構文例
ETag example28be1c3 #{SourceVariables.ETag}
VersionId exampleta_IUQCv #{SourceVariables.VersionId}

ユーザー設定の変数キーを使用したアクション

CodeBuild、 AWS CloudFormation、および Lambda アクションの場合、変数キーはユーザーが設定します。

CloudFormation アクションの出力変数

AWS CloudFormation 変数
変数キー 変数構文例

AWS CloudFormation アクションの場合、変数はスタックテンプレートの Outputsセクションで指定された値から生成されます。CloudFormation アクションモードのうち、出力を生成するのは、スタックの作成、スタックの更新、変更セットの実行など、スタックの作成や更新を伴うアクションモードのみです。変数を生成するアクションモードは次のとおりです。

  • CREATE_UPDATE

  • CHANGE_SET_EXECUTE

  • CHANGE_SET_REPLACE

  • REPLACE_ON_FAILURE

これらのアクションの詳細については、「AWS CloudFormation デプロイアクションリファレンス」を参照してください。 AWS CloudFormation 出力変数を使用するパイプラインで AWS CloudFormation デプロイアクションを使用してパイプラインを作成する方法を示すチュートリアルについては、「」を参照してくださいチュートリアル: AWS CloudFormation デプロイアクションの変数を使用するパイプラインを作成する
#{DeployVariables.StackName}

CodeBuild アクションの出力変数

CodeBuild 変数
変数キー 変数構文例

CodeBuild アクションの場合、変数はエクスポートされた環境変数によって生成された値から生成されます。CodeBuild 環境変数を設定するには、CodePipeline で CodeBuild アクションを編集するか、ビルド仕様に環境変数を追加します。

CodeBuild ビルドスペックに指示を追加して、エクスポートされた変数セクションの下に環境変数を追加します。env/exported-変数AWS CodeBuild ユーザーガイド を参照してください。

#{BuildVariables.EnvVar}

Lambda アクションの出力変数

Lambda 変数
変数キー 変数構文例
Lambda アクションは、変数として PutJobSuccessResult API リクエストのセクションoutputVariables に含まれるすべてのキーと値のペアを生成します。

アップストリームアクション ( CodeCommit ) の変数を使用し、出力変数を生成する Lambda アクションのチュートリアルについては、 チュートリアル: Lambda 呼び出しアクションで変数を使用する を参照してください。

#{TestVariables.testRunId}