

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

# 変数の操作
<a name="actions-variables"></a>

CodePipeline のアクションの中には、変数を生成するものがあります。変数を使用するには、次の手順に従います。
+ 名前空間をアクションに割り当てて、生成する変数をダウンストリームアクション設定で使用できるようにします。
+ ダウンストリームアクションは、アクションによって生成された変数を消費するよう設定します。

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

変数を使用するためのステップバイステップの例を参照するには:
+ アップストリームアクション ( CodeCommit ) の変数を使用し、出力変数を生成する Lambda アクションのチュートリアルについては、[チュートリアル: Lambda 呼び出しアクションで変数を使用する](tutorials-lambda-variables.md) を参照してください。
+ アップストリーム CloudFormation CloudFormation アクションのスタック出力変数を参照するアクションを含むチュートリアルについては、「」を参照してください[チュートリアル: AWS CloudFormation デプロイアクションの変数を使用するパイプラインを作成する](tutorials-cloudformation-action.md)。
+ CodeCommit コミット ID とコミットメッセージに解決される出力変数を参照するメッセージテキストを使用した手動承認アクションの例については、[例: 手動承認で変数を使用する](#actions-variables-examples-approvals) を参照してください。
+ GitHub ブランチ名に解決される環境変数を持つ CodeBuild アクションの例については、[例:CodeBuild 環境変数で BranchName 変数を使用する](#actions-variables-examples-env-branchname) を参照してください。
+ CodeBuild アクションは、ビルドの一部としてエクスポートされたすべての環境変数を変数として生成します。詳細については、「[CodeBuild アクションの出力変数](reference-variables.md#reference-variables-list-configured-codebuild)」を参照してください。CodeBuild で使用できる環境変数のリストについては、*AWS CodeBuild ユーザーガイド*の「[ビルド環境の環境変数](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-env-vars.html)」を参照してください。

**Topics**
+ [変数のアクションを設定する](#actions-variables-create)
+ [出力変数を表示する](#actions-variables-view)
+ [例: 手動承認で変数を使用する](#actions-variables-examples-approvals)
+ [例:CodeBuild 環境変数で BranchName 変数を使用する](#actions-variables-examples-env-branchname)

## 変数のアクションを設定する
<a name="actions-variables-create"></a>

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

### 変数のアクションを設定する (コンソール)
<a name="actions-variables-create-console"></a>

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

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

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

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

1. **パイプラインの作成** を選択します。パイプラインに名前を入力し、[**Next (次へ)**] を選択します。

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

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

   [**環境変数**] の下で、[**Add environment variables (環境変数を追加)**] を選択します。例えば、実行 ID を変数構文 `#{codepipeline.PipelineExecutionId}` で入力し、コミット ID を変数構文 `#{SourceVariables.CommitId}` で入力します。
**注記**  
変数構文は、ウィザードの任意のアクション設定フィールドに入力できます。

1. [**作成**] を選択します。

1. パイプラインが作成されたら、ウィザードによって作成された名前空間を表示できます。パイプラインで、名前空間を表示するステージのヘルプペインアイコンを選択します。この例では、ソースアクションの自動生成された名前空間、`SourceVariables` が表示されます。  
![\[例: アクション情報画面\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/variables-popup-namespace.png)

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

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

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

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

**出力変数を表示するには**

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

1. パイプラインが作成され、正常に実行できたら、**アクションの実行詳細**ページで変数の値を表示することもできます。詳細については、「[変数を表示する (コンソール)](#actions-variables-view-console)」を参照してください。

### 変数のアクションを設定する (CLI)
<a name="actions-variables-create-cli"></a>

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

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

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

1. 「[パイプライン、ステージ、アクションを作成する](pipelines-create.md)」の手順 に従って、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": [
   
   . . .
   ```

1. **MyPipeline.json** のような名前でファイルを保存します。

1. ターミナル (Linux、macOS、UNIX) またはコマンドプロンプト (Windows) で、[https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html)コマンドを実行し、パイプラインを作成します。

   [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/retry-stage-execution.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/retry-stage-execution.html) コマンドを実行したときに作成したファイルを呼び出します。例: 

   ```
   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
           }
       ]
   },
   ```

1. **MyPipeline.json** のような名前でファイルを保存します。

1. ターミナル (Linux、macOS、UNIX) またはコマンドプロンプト (Windows) で、[https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/get-pipeline-state.html)コマンドを実行し、パイプラインを作成します。

   [https://docs.aws.amazon.com/cli/latest/reference/codepipeline/retry-stage-execution.html](https://docs.aws.amazon.com/cli/latest/reference/codepipeline/retry-stage-execution.html) コマンドを実行したときに作成したファイルを呼び出します。例: 

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

## 出力変数を表示する
<a name="actions-variables-view"></a>

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

### 変数を表示する (コンソール)
<a name="actions-variables-view-console"></a>

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

****

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

    AWS アカウントに関連付けられているすべてのパイプラインの名前が表示されます。

1.  [**Name**] で、パイプラインの名前を選択します。

1. [**View history (履歴の表示)**] を選択します。

1. パイプラインが正常に実行されると、ソースアクションによって生成された変数を表示できます。[**View history (履歴の表示)**] を選択します。パイプライン実行のアクションリストで [**ソース**] を選択して、CodeCommit アクションのアクション実行の詳細を表示します。アクションの詳細画面で、[**Output variables (出力変数)**] の下の変数を表示します。  
![\[例: ソース出力変数\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/variables-output.png)

1. パイプラインが正常に実行されると、ビルドアクションによって消費される変数を表示できます。[**View history (履歴の表示)**] を選択します。パイプライン実行のアクションリストで、[**ビルド**] を選択して、CodeBuild アクションのアクション実行の詳細を表示します。アクションの詳細ページで、[**アクション設定**] の下にある変数を表示します。自動生成された名前空間が表示されます。  
![\[例: アクション設定変数\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/variables-actionconfig-codebuild.png)

   デフォルトでは、[**アクション設定**] には変数の構文が表示されます。[**Show resolved configuration (解決された設定を表示)**] を選択して、アクションの実行中に生成された値を表示するようにリストを切り替えることができます。  
![\[例: 解決済みアクション設定変数\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/variables-actionconfig-codebuild-resolved.png)

### 変数を表示する (CLI)
<a name="actions-variables-view-cli"></a>

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

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

   ```
   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"
                   },
   ```

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

   ```
   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
           }
       ]
   },
   ```

## 例: 手動承認で変数を使用する
<a name="actions-variables-examples-approvals"></a>

アクションの名前空間を指定し、そのアクションが出力変数を生成する場合、承認メッセージに変数を表示する手動承認を追加できます。この例では、手動承認メッセージに変数構文を追加する方法を示します。

****

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

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

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

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

1. [**レビュー用の URL**] で、`CommitId` の変数構文を CodeCommit URL に追加します。ソースアクションに割り当てられた名前空間をかならず使用してください。例えば、デフォルトの名前空間で `SourceVariables` CodeCommit アクションに対する変数構文は、`#{SourceVariables.CommitId}` です。

   [**コメント**] で、`CommitMessage` にコミットメッセージを入力します。

   ```
   Please approve this change. Commit message: #{SourceVariables.CommitMessage}
   ```

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

## 例:CodeBuild 環境変数で BranchName 変数を使用する
<a name="actions-variables-examples-env-branchname"></a>

CodeBuild アクションをパイプラインに追加する場合、CodeBuild 環境変数を使用してアップストリームソースアクションから `BranchName` 変数を参照することができます。CodePipeline のアクションからの出力変数を使用して、ビルドコマンドで使用する独自の CodeBuild 環境変数を作成できます。

この例では、GitHub ソースアクションから出力変数構文を CodeBuild 環境変数に追加する方法を示します。この例の出力変数の構文は、以下 `BranchName` の GitHub ソースアクション出力変数を表します。アクションが正常に実行されると、変数が解決され、GitHub ブランチ名が表示されます。

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

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

1. パイプラインを編集するには、[**編集**] を選択します。CodeBuild アクションを含むステージで、[**ステージの編集**] を選択します。

1. アイコンを選択して CodeBuild アクションを編集します。

1. [**編集アクション**] ページの **環境変数** で、次のように入力します。
   + [**名前**]に、環境変数の名前を入力します。
   + [**値**]に、パイプライン出力変数の変数構文を入力します。これには、ソースアクションに割り当てられた名前空間が含まれます。たとえば、デフォルトの名前空間で `SourceVariables` GitHub アクションに対する出力変数構文は、`#{SourceVariables.BranchName}` です。
   + [**タイプ**]に、**プレーンテキスト**を選択します。

1. パイプラインが正常に実行されると、解決された出力変数が環境変数の値になることがわかります。次のいずれかを選択します。
   + **CodePipeline コンソール:** パイプラインを選択してから、**履歴** を選択します。最新のパイプライン実行を選択します。
     + [**タイムライン**]で、[**送信元**] のセレクタを選択します。これは GitHub 出力変数を生成するソースアクションです。**View execution details (実行の詳細を表示)**を選択 [**出力変数**]で、このアクションによって生成された出力変数のリストを表示します。
     + [**タイムライン**]で、[**ビルド**]のセレクタを選択します。これは、ビルドプロジェクトの CodeBuild 環境変数を指定するビルドアクションです。**View execution details (実行の詳細を表示)** を選択 [**アクション設定**]で、CodeBuild 環境変数を表示します。**解決済み設定を表示** を選択。環境変数の値は解決済みです。GitHub ソースアクションから `BranchName` 変数を出力します。この例では、この値は `main` です。

       詳細については、「[変数を表示する (コンソール)](#actions-variables-view-console)」を参照してください。
   + **CodeBuild コンソール:** ビルドプロジェクトを選択し、ビルド実行のリンクを選択します。[**環境変数**] の場合、解決された出力変数は CodeBuild 環境変数の値です。この例では、環境変数の値の [**Name**] は `BranchName` で、GitHub ソースアクションから [**Value**] 解決済み `BranchName` 出力変数を表示します。この例では、この値は `main` です。  
![\[コンソールで解決された変数を示すスクリーンショット\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/variable-codebuild-resolved.png)