

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

# チュートリアル: パイプラインレベルの変数を使用する
<a name="tutorials-pipeline-variables"></a>

このチュートリアルでは、パイプラインを作成し、パイプラインレベルの変数を追加します。そのパイプラインで、変数の値を出力する CodeBuild ビルドアクションが実行されるようにします。

**重要**  
パイプライン作成の一環として、CodePipeline は、ユーザーが指定した S3 アーティファクトバケットをアーティファクトとして使用します (これは S3 ソースアクションで使用するバケットとは異なります)。S3 アーティファクトバケットがパイプラインのアカウントとは異なるアカウントにある場合は、S3 アーティファクトバケットが によって所有 AWS アカウント されており、安全で信頼できることを確認してください。

**Topics**
+ [前提条件](#tutorials-pipeline-variables-prereq)
+ [ステップ 1: パイプラインを作成してプロジェクトをビルドする](#tutorials-pipeline-variables-pipeline)
+ [ステップ 2: 変更をリリースしてログを表示する](#tutorials-pipeline-variables-view)

## 前提条件
<a name="tutorials-pipeline-variables-prereq"></a>

開始する前に、以下を実行する必要があります。
+ CodeCommit リポジトリを作成します。
+ リポジトリに .txt ファイルを追加します。

## ステップ 1: パイプラインを作成してプロジェクトをビルドする
<a name="tutorials-pipeline-variables-pipeline"></a>

このセクションでは、以下のアクションを使用してパイプラインを作成します。
+ CodeCommit リポジトリへの接続を持つソースステージ。
+ ビルドアクションを含む AWS CodeBuild ビルドステージ。

**ウィザードを使用してパイプラインを作成するには**

1. CodePipeline コンソール ([http://console.aws.amazon.com/codesuite/codepipeline/home](https://console.aws.amazon.com/codepipeline/)) にサインインします。

1. [**ようこそ**] ページ、[**開始方法**] ページ、または [**パイプライン**] ページで、[**パイプラインの作成**] を選択します。

1. **[ステップ 1: 作成オプションを選択する]** ページの **[作成オプション]** で、**[カスタムパイプラインを構築する]** オプションを選択します。**[次へ]** を選択します。

1. **[ステップ 2: パイプラインの設定を選択する]** で、**[パイプライン名]** に「**MyVariablesPipeline**」と入力します。

1. [**パイプラインのタイプ**] で、デフォルトの選択を [**V2**] のままにします。パイプラインのタイプによって特徴および価格が異なります。詳細については、「[パイプラインのタイプ](pipeline-types.md)」を参照してください。

1. [**サービスロール**] で、[**New service role (新しいサービスロール)**] を選択します。
**注記**  
既存の CodePipeline サービスロールを代わりに使用する場合は、サービスロールポリシーに対する `codeconnections:UseConnection` IAM アクセス許可を追加したことを確認してください。CodePipeline サービスロールの手順については、「[Add permissions to the the CodePipeline service role](https://docs.aws.amazon.com/codepipeline/latest/userguide/security-iam.html#how-to-update-role-new-services)」を参照してください。

1. [**変数**] で、[**変数の追加**] を選択します。[**名前**] に「`timeout`」と入力します。[**デフォルト**] に「1000」と入力します。説明として「**Timeout** 」と入力します。

   これにより、パイプラインの実行開始時に値を宣言できる変数が作成されます。変数名は `[A-Za-z0-9@\-_]+` と一致する必要があり、空文字列以外であれば任意の名前で構いません。

1. **[詳細設定]** では、デフォルト値のままにします。**アーティファクトストア**で、[**Default location**] (デフォルトの場所)を選択し、パイプライン用に選択したリージョン内のパイプラインのデフォルトのアーティファクトストア (デフォルトとして指定された Amazon S3 アーティファクトバケットなど) を使用します。
**注記**  
これはソースコードのソースバケットではありません。パイプラインのアーティファクトストアです。パイプラインごとに S3 バケットなどの個別のアーティファクトストアが必要です。

   [**次へ**] を選択します。

1. **[ステップ 3: ソースステージを追加する]** ページでソースステージを追加します。

   1. [**ソースプロバイダ**] で、**AWS CodeCommit** を選択します。

   1. [**リポジトリ名**] と [**ブランチ名**] で、リポジトリとブランチを選択します。

   [**次へ**] を選択します。

1. **[ステップ 4: ビルドステージの追加]** で、ビルドステージを追加します。

   1. [**ビルドプロバイダ**] で、[**AWS CodeBuild**] を選択します。**[リージョン]** をデフォルトでパイプラインのリージョンにすることを許可します。

   1. **[プロジェクトを作成]** を選択します。

   1. [**プロジェクト名**] に、このビルドプロジェクトの名前を入力します。

   1. [**環境イメージ**] で、[**Managed image (マネージド型イメージ)**] を選択します。[**Operating system**] で、[**Ubuntu**] を選択します。

   1. [**ランタイム**] で、[**Standard (標準)**] を選択します。[**イメージ**] で、[**aws/codebuild/standard:5.0**] を選択します。

   1. [**サービスロール**] で、[**New service role (新しいサービスロール)**] を選択します。
**注記**  
CodeBuild サービスロールの名前を書き留めます。このチュートリアルの最後のステップでは、ロール名が必要になります。

   1. [**Buildspec**] の **Build specifications** (ビルド仕様) で、[**Insert build commands**] (ビルドコマンドの挿入) を選択します。**エディタに切り替え** を選択し、**ビルドコマンド** に以下を貼り付けます。buildspec では、カスタム変数 `$CUSTOM_VAR1` を使用してパイプライン変数をビルドログに出力します。次のステップでは、`$CUSTOM_VAR1` 出力変数を環境変数として作成します。

      ```
      version: 0.2
      #env:
        #variables:
           # key: "value"
           # key: "value"
        #parameter-store:
           # key: "value"
           # key: "value"
        #git-credential-helper: yes
      phases:
        install:
          #If you use the Ubuntu standard image 2.0 or later, you must specify runtime-versions.
          #If you specify runtime-versions and use an image other than Ubuntu standard image 2.0, the build fails.
          runtime-versions:
            nodejs: 12
          #commands:
            # - command
            # - command
        #pre_build:
          #commands:
            # - command
            # - command
        build:
          commands:
            - echo $CUSTOM_VAR1
        #post_build:
          #commands:
            # - command
            # - command
      artifacts:
        files:
           - '*'
          # - location
        name: $(date +%Y-%m-%d)
        #discard-paths: yes
        #base-directory: location
      #cache:
        #paths:
          # - paths
      ```

   1. [**Continue to CodePipeline **] (CodePipeline に進む) を選択します。CodePipeline コンソールに戻り、ビルドコマンドを使用して設定する CodeBuild プロジェクトが作成されます。ビルドプロジェクトでは、サービスロールを使用して AWS のサービス アクセス許可を管理します。このステップには数分かかる場合があります。

   1. [**環境変数* - オプション***] で、パイプラインレベルの変数によって解決されるビルドアクションの入力変数として環境変数を作成するには、[**環境変数の追加**] を選択します。これにより、buildspec で指定した変数が `$CUSTOM_VAR1` として作成されます。[**名前**] に「`CUSTOM_VAR1`」と入力します。**[値]** には「`#{variables.timeout}`」と入力します。[**タイプ**] で、[`Plaintext`] を選択します。

      環境変数の`#{variables.timeout}`値は、パイプラインレベルの変数名前空間`variables`と、ステップ 7 でパイプライン用に`timeout`作成されたパイプラインレベルの変数に基づいています。

   1. [**次へ**] を選択します。

1. **[ステップ 5: テストステージの追加]** で、**[テストステージをスキップ]** を選択し、もう一度 **[スキップ]** を選択して警告メッセージを受け入れます。

   [**次へ**] を選択します。

1. **[ステップ 6: デプロイステージの追加]** ページで、**[デプロイステージをスキップ]** を選択し、もう一度 **[スキップ]** を選択して警告メッセージを受け入れます。[**次へ**] を選択します。

1. **ステップ 7: 確認**で、**パイプラインの作成**を選択します。

## ステップ 2: 変更をリリースしてログを表示する
<a name="tutorials-pipeline-variables-view"></a>

1. パイプラインが正常に実行されたら、成功したビルドステージで **[詳細を表示]** を選択します。

   詳細ページで、**[ログ]** タブを選択します。CodeBuild ビルド出力を表示します。このコマンドは、入力された変数の値を出力します。

1. 左側のナビゲーションで、[**履歴**] を選択します。

   最近の実行を選択し、[**変数**] タブを選択します。パイプライン変数の解決された値を表示します。