Variables - AWS CodePipeline

Variables

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

変数を使用すると、アクションの実行時に決定される値でパイプラインアクションを設定できます。変数は、アクションの実行によって生成することも、各パイプライン実行の開始時に暗黙的に使用することもできます。

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

変数の使用についてのステップバイステップの例は次のとおりです。

変数の制限

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

注記

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

Concepts

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

変数

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

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

アクションプロバイダごとに使用できるキー名のリストについては、「パイプラインアクションで使用できる変数」を参照してください。変数ワークフローの例については、「変数の設定 」を参照してください。

Namespaces

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

#{namespace.variable_key}

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

  • codepipeline 予約済み名前空間

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

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

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

    #{SourceVariables.VersionId}

変数の設定

アクションの名前空間を宣言して、変数を生成するようにアクションを設定します。アクションは、すでに変数を生成するアクションプロバイダの 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 latest #{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 1111111-2bbb-111-2bbb-11111 の例 #{DeployVariables.OperationId}
StackSetId my-stackset:1111aaa-1111-22-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、GitHub、および GitHub Enterprise Repository)
変数キー 値の例 変数構文の例
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-id #{SourceVariables.ConnectionArn}
FullRepositoryName ユーザー名/GitHubRepo #{SourceVariables.FullRepositoryName}

GitHub アクションの出力変数 (GitHub アクションのバージョン 1)

GitHub 変数 (GitHub アクションバージョン 1)
変数キー 値の例 変数構文の例
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、および Lambda アクションの場合、変数キーはユーザーによって設定されます。AWS CloudFormation

CloudFormation アクションの出力変数

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

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

  • CREATE_UPDATE

  • REPLACE_ON_FAILURE

  • ALWAYS_REPLACE

  • CHANGE_SET_EXECUTE

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

CodeBuild アクションの出力変数

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

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

エクスポートされた変数セクションの下に環境変数を追加する手順を CodeBuild ビルド仕様に追加します。『 ユーザーガイド』の「env/exported-variablesAWS CodeBuild」を参照してください。

#{BuildVariables.EnvVar}

Lambda アクションの出力変数

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

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

#{TestVariables.testRunId}