変数 - AWS CodePipeline

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

変数

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

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

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

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

変数の制限

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

注記

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

概念

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

変数

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

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

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

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

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

名前空間

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

#{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 最新 #{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、GitHub、および GitHub エンタープライズリポジトリ)
変数キー 値の例 可変構文例
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 アクションバージョン 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 で、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-variablesAWS CodeBuild ユーザーガイド を参照してください。

#{BuildVariables.EnvVar}

Lambda アクションの出力変数

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

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

#{TestVariables.testRunId}