

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

# イメージ定義ファイルのリファレンス
<a name="file-reference"></a>

このセクションは参照のみを目的としています。コンテナのソースまたはデプロイアクションを使用してパイプラインを作成する方法については、「[パイプライン、ステージ、アクションを作成する](pipelines-create.md)」を参照してください。

AWS CodePipeline Amazon ECR ソースアクションや Amazon ECS デプロイアクションなどのコンテナアクションのジョブワーカーは、定義ファイルを使用してイメージ URI とコンテナ名をタスク定義にマッピングします。各定義ファイルは、次のようにアクションプロバイダによって使用される JSON 形式のファイルです。
+ Amazon ECS 標準デプロイでは、デプロイアクションへの入力で `imagedefinitions.json` ファイルが必要です。CodePipeline で Amazon ECS スタンダードデプロイアクションを使用するチュートリアルについては、[チュートリアル: CodePipeline を使用した Amazon ECS 標準デプロイ](ecs-cd-pipeline.md) を参照してください。CodePipeline で Amazon ECS 標準デプロイアクションと ECRBuildAndPublish アクションの仕様に関する追加のチュートリアルについては、「[チュートリアル: CodePipeline (V2 タイプ) を使用して Docker イメージを構築し Amazon ECR にプッシュする](tutorials-ecr-build-publish.md)」を参照してください。
+ Amazon ECS Blue/Green デプロイでは、デプロイアクションへの入力で `imageDetail.json` ファイルが必要です。ブルー/グリーンデプロイのサンプルを使用したチュートリアルについては、「[チュートリアル: Amazon ECR ソース、ECS - CodeDeploy 間のデプロイでパイプラインを作成する](tutorials-ecs-ecr-codedeploy.md)」を参照してください。
  + Amazon ECR ソースアクションでは、ソースアクションの出力として提供される、`imageDetail.json` ファイルが生成されます。

**Topics**
+ [Amazon ECS 標準デプロイアクション用の imagedefinitions.json ファイル](#pipelines-create-image-definitions)
+ [Amazon ECS Blue/Green デプロイアクション用の imageDetail.json ファイル](#file-reference-ecs-bluegreen)

## Amazon ECS 標準デプロイアクション用の imagedefinitions.json ファイル
<a name="pipelines-create-image-definitions"></a>

イメージ定義ドキュメントは、Amazon ECS のコンテナ名およびイメージとタグについて説明する JSON ファイルです。コンテナベースのアプリケーションをデプロイする場合は、イメージ定義ファイルを生成して CodePipeline のジョブワーカーに Amazon ECS コンテナを提供し、Amazon ECR などのイメージリポジトリから取得するイメージ ID を生成する必要があります。

**注記**  
このファイルのデフォルトのファイル名は `imagedefinitions.json` です。別のファイル名を使用することを選択した場合は、パイプラインデプロイステージを作成するときにそのファイル名を指定する必要があります。

以下の考慮事項に注意して、`imagedefinitions.json` ファイルを作成します。
+ ファイルには UTF-8 エンコーディングを使用する必要があります。
+ イメージ定義ファイルの最大ファイルサイズの制限は 100 KB です。
+  ファイルは、ソースとして作成するか、デプロイアクションの入力アーティファクトになるようにアーティファクトを構築する必要があります。つまり、ファイルが CodeCommit リポジトリなどのソースの場所にアップロードされていること、またはビルドされた出力アーティファクトとして生成されていることを確認してください。

`imagedefinitions.json` ファイルはコンテナ名とイメージ URI を提供します。次のキーと値のペアのセットで構築する必要があります。


| キー | 値 | 
| --- | --- | 
| 名前 | コンテナ名 | 
| ImageURI | imageUri | 

**注記**  
[名前] フィールドは、コンテナイメージ名、つまり Docker イメージ名に使用します。

コンテナ名が `sample-app` で、イメージ URI が `ecs-repo`、タグが `latest` の JSON 構造は次のとおりです。

```
[
  {
    "name": "sample-app",
    "imageUri": "11111EXAMPLE.dkr.ecr.us-west-2.amazonaws.com/ecs-repo:latest"
  }
]
```

複数のコンテナイメージのペアをリストするようにファイルを構築することもできます。

JSON の構造:

```
[
  {
    "name": "simple-app",
    "imageUri": "httpd:2.4"
  },
  {
    "name": "simple-app-1",
    "imageUri": "mysql"
  },
  {
    "name": "simple-app-2",
    "imageUri": "java1.8"
  }
]
```

パイプラインを作成する前に、以下の手順に従って `imagedefinitions.json` ファイルを設定します。

1. パイプラインのコンテナベースのアプリケーションデプロイの計画の一環として、ソースステージとビルドステージを計画します (該当する場合)。

1. 次のいずれかを選択します。

   1.  パイプラインがビルドステージをスキップするように作成されている場合、ソースアクションがアーティファクトを提供できるように、手動で JSON ファイルを作成してソースリポジトリにアップロードする必要があります。テキストエディタを使用してファイルを作成し、ファイルに名前を付けます。または、デフォルトの `imagedefinitions.json` ファイル名を使用します。イメージ定義ファイルをソースリポジトリにプッシュします。
**注記**  
ソースリポジトリが Amazon S3 バケットの場合は、JSON ファイルを圧縮してください。

   1. パイプラインにビルドステージがある場合は、ビルドフェーズ中にソースリポジトリにイメージ定義ファイルを出力するコマンドをビルドスペックファイルに追加します。以下の例では、**printf** コマンドを使用して、`imagedefinitions.json` ファイルを作成します。`buildspec.yml` ファイルの `post_build` セクションにこのコマンドをリストします。

      ```
      printf '[{"name":"container_name","imageUri":"image_URI"}]' >
      imagedefinitions.json
      ```

      イメージ定義ファイルを出力アーティファクトとして `buildspec.yml` ファイルに含める必要があります。

1. コンソールでパイプラインを作成する場合、[**パイプラインの作成**] ウィザードの [**デプロイ**] ページの [**イメージのファイル名**] にイメージ定義ファイル名を入力します。

Amazon ECS をデプロイプロバイダーとして使用するパイプラインを作成するための段階的なチュートリアルについては、[[チュートリアル: CodePipeline を使用した継続的デプロイメント](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cd-pipeline.html)] を参照してください。

## Amazon ECS Blue/Green デプロイアクション用の imageDetail.json ファイル
<a name="file-reference-ecs-bluegreen"></a>

`imageDetail.json` ドキュメントは、 Amazon ECS イメージ URI を説明する JSON ファイルです。ブルー/グリーンデプロイ用にコンテナベースのアプリケーションをデプロイする場合、`imageDetail.json` ファイルを生成して、Amazon ECS と CodeDeploy ジョブワーカーに、Amazon ECR などのイメージリポジトリから取得するイメージ ID を提供する必要があります。

**注記**  
ファイルの名前は `imageDetail.json` である必要があります。

アクションとそのパラメータの説明については、「[Amazon ECS および CodeDeploy ブルー/グリーンデプロイアクションリファレンス](action-reference-ECSbluegreen.md)」を参照してください。

`imageDetail.json` ファイルは、ソースとして作成するか、デプロイアクションの入力アーティファクトになるようにアーティファクトを構築する必要があります。これらの方法のいずれかを使用して、パイプラインに `imageDetail.json` ファイルを提供できます。
+ ソースの場所に `imageDetail.json` ファイルを含め、Amazon ECS Blue/Green デプロイアクションへの入力としてパイプラインで提供されるようにします。
**注記**  
ソースリポジトリが Amazon S3 バケットの場合は、JSON ファイルを圧縮してください。
+ Amazon ECR ソースアクションでは、次のアクションへの入力アーティファクトとして `imageDetail.json` ファイルが自動生成されます。
**注記**  
Amazon ECR ソースアクションがこのファイルを作成するので、Amazon ECR ソースアクションを含むパイプラインは 手動で `imageDetail.json` ファイルを提供する必要はありません。  
Amazon ECR ソースステージを含むパイプラインの作成に関するチュートリアルについては、[チュートリアル: Amazon ECR ソース、ECS - CodeDeploy 間のデプロイでパイプラインを作成する](tutorials-ecs-ecr-codedeploy.md) を参照してください。

![\[アーティファクトバケット内の imageDetail.json ファイルを示す図\]](http://docs.aws.amazon.com/ja_jp/codepipeline/latest/userguide/images/imageDetail_file_diagram.png)


`imageDetail.json` ファイルは、イメージ URI を提供します。次のキーと値のペアで構築する必要があります。


| キー | 値 | 
| --- | --- | 
| ImageURI | image\$1URI | 

------
#### [ imageDetail.json ]

以下に、イメージ URI が `ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3` である JSON 構造を示します。

```
{
"ImageURI": "ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3"
}
```

------
#### [ imageDetail.json (generated by ECR) ]

変更がイメージリポジトリにプッシュされるたびに、Amazon ECR ソースアクションによって `imageDetail.json` ファイルが自動生成されます。Amazon ECR ソースアクションにより生成された `imageDetail.json` は、ソースアクションから出力アーティファクトとしてパイプラインの次のアクションに提供されます。

リポジトリ名が `dk-image-repo` で、イメージ URI が `ecs-repo`、イメージタグが `latest` の JSON 構造は次のとおりです。

```
{
    "ImageSizeInBytes": "44728918",
    "ImageDigest": "sha256:EXAMPLE11223344556677889900bfea42ea2d3b8a1ee8329ba7e68694950afd3",
    "Version": "1.0",
    "ImagePushedAt": "Mon Jan 21 20:04:00 UTC 2019",
    "RegistryId": "EXAMPLE12233",
    "RepositoryName": "dk-image-repo",
    "ImageURI": "ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3",
    "ImageTags": [
        "latest"
    ]
}
```

`imageDetail.json` ファイルは、次のようにイメージ URI とコンテナ名を Amazon ECS タスク定義にマッピングします。
+ `ImageSizeInBytes`: リポジトリ内のイメージのサイズ (単位: バイト)。
+ `ImageDigest`: イメージマニフェストの `sha256` ダイジェスト。
+ `Version`: イメージバージョン。
+ `ImagePushedAt`: 最新のイメージがリポジトリにプッシュされた日時。
+ `RegistryId`: リポジトリを含むレジストリに関連付けられた AWS アカウント ID。
+ `RepositoryName`: イメージがプッシュされた Amazon ECR リポジトリの名前。
+ `ImageURI`: イメージの URI。
+ `ImageTags`: イメージに使用されるタグ。

------

パイプラインを作成する前に、以下の手順に従って `imageDetail.json` ファイルを設定します。

1. パイプラインのコンテナベースのアプリケーション Blue/Green デプロイの計画の一環として、ソースステージとビルドステージを計画します (該当する場合)。

1. 次のいずれかを選択します。

   1.  パイプラインでビルドステージをスキップしている場合、JSON ファイルを手動で作成し、CodeCommit などのソースリポジトリにアップロードして、ソースアクションがアーティファクトを提供できるようにします。テキストエディタを使用してファイルを作成し、ファイルに名前を付けます。または、デフォルトの `imageDetail.json` ファイル名を使用します。`imageDetail.json` ファイルをソースリポジトリにプッシュします。

   1. パイプラインにビルドステージがある場合は、以下の手順を実行します。

      1. ビルドフェーズ中にソースリポジトリにイメージ定義ファイルを出力するコマンドをビルドスペックファイルに追加します。以下の例では、**printf** コマンドを使用して、`imageDetail.json` ファイルを作成します。buildspec.yml ファイルの `post_build` セクションにこのコマンドをリストします。

         ```
         printf '{"ImageURI":"image_URI"}' > imageDetail.json
         ```

         `imageDetail.json` ファイルを出力アーティファクトとして `buildspec.yml` ファイルに含める必要があります。

      1. `imageDetail.json`をアーティファクトファイルとして `buildspec.yml` ファイルに追加します。

         ```
         artifacts:
           files:
             - imageDetail.json
         ```