

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Référence pour les fichiers de définitions d'image
<a name="file-reference"></a>

Cette section est fournie à des fins de référence uniquement. Pour de plus amples informations sur la création d'un pipeline avec des actions source ou de déploiement pour les conteneurs, veuillez consulter [Création d'un pipeline, d'étapes et d'actions](pipelines-create.md).

AWS CodePipeline les travailleurs chargés des actions de conteneur, telles qu'une action source Amazon ECR ou des actions de déploiement Amazon ECS, utilisent des fichiers de définitions pour associer l'URI de l'image et le nom du conteneur à la définition de la tâche. Chaque fichier de définitions est un fichier au format JSON utilisé par le fournisseur de l'action de la manière suivante :
+ Les déploiements standard d'Amazon ECS nécessitent un `imagedefinitions.json` fichier comme entrée pour l'action de déploiement. Pour un didacticiel utilisant l'action de déploiement standard d'Amazon ECS dans CodePipeline, consultez[Tutoriel : Déploiement standard d'Amazon ECS avec CodePipeline](ecs-cd-pipeline.md). Pour un autre exemple de didacticiel qui utilise l'action de déploiement standard Amazon ECS CodePipeline en même temps que l' ECRBuildAndPublish action, consultez[Tutoriel : créer et envoyer une image Docker vers Amazon ECR avec CodePipeline (type V2)](tutorials-ecr-build-publish.md).
+ Les blue/green déploiements Amazon ECS nécessitent un `imageDetail.json` fichier comme entrée pour l'action de déploiement. Pour un didacticiel présentant un exemple blue/green de déploiement, consultez[Tutoriel : Création d'un pipeline avec une source Amazon ECR et déploiement ECS-to-CodeDeploy](tutorials-ecs-ecr-codedeploy.md).
  + Les actions source Amazon ECR génèrent un fichier `imageDetail.json` qui est fourni en tant que sortie de l'action source.

**Topics**
+ [fichier imagedefinitions.json pour les actions de déploiement standard d'Amazon ECS](#pipelines-create-image-definitions)
+ [Fichier ImageDetail.json pour les actions de déploiement d'Amazon ECS blue/green](#file-reference-ecs-bluegreen)

## fichier imagedefinitions.json pour les actions de déploiement standard d'Amazon ECS
<a name="pipelines-create-image-definitions"></a>

Un document de définition d'image est un fichier JSON qui décrit le nom de votre conteneur Amazon ECS, ainsi que l'image et le tag. Si vous déployez des applications basées sur des conteneurs, vous devez générer un fichier de définitions d'images pour fournir au travailleur CodePipeline le conteneur Amazon ECS et l'identification de l'image à récupérer dans le référentiel d'images, tel qu'Amazon ECR.

**Note**  
Le nom de fichier par défaut pour le fichier est `imagedefinitions.json`. Si vous choisissez d'utiliser un autre nom de fichier, vous devez l'indiquer lorsque vous créez la phase de déploiement du pipeline.

Créez le fichier `imagedefinitions.json` en respectant les considérations suivantes :
+ Le fichier doit utiliser le codage UTF-8.
+ La taille maximum du fichier de définitions d'image est de 100 Ko.
+ Vous devez créer le fichier en tant que source ou artefact de génération afin qu'il soit un artefact d'entrée pour l'action de déploiement. En d'autres termes, assurez-vous que le fichier est soit téléchargé vers votre emplacement source, tel que votre CodeCommit référentiel, soit généré en tant qu'artefact de sortie intégré.

Le fichier `imagedefinitions.json` fournit le nom du conteneur et l'URI de l'image. Il doit être construit avec l'ensemble de paires clé-valeur suivant.


| Clé | Valeur | 
| --- | --- | 
| name | container\$1name | 
| imageUri | imageUri | 

**Note**  
Le champ de nom est utilisé pour le nom de l'image du conteneur, c'est-à-dire le nom de l'image Docker.

Voici la structure JSON, dans laquelle le nom du conteneur est `sample-app`, l'URI d'image est `ecs-repo` et la balise est `latest` :

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

Vous pouvez également construire le fichier de manière à répertorier plusieurs paires image-conteneur. 

Structure JSON :

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

Avant de créer votre pipeline, suivez les étapes suivantes pour configurer le fichier `imagedefinitions.json`.

1. Dans le cadre de la planification du déploiement d'application basé sur conteneur pour votre pipeline, planifiez l'étape source et l'étape de build, le cas échéant.

1. Sélectionnez l’une des méthodes suivantes :

   1.  Si votre pipeline est créé de telle sorte qu'il ignore l'étape de construction, vous devez créer manuellement le fichier JSON et le télécharger dans votre référentiel source afin que l'action source puisse fournir l'artefact. Créez le fichier à l'aide de l'éditeur de texte et nommez-le ou utilisez le nom de fichier `imagedefinitions.json` par défaut. Disposez le fichier de définitions d'image dans votre référentiel source.
**Note**  
Si votre référentiel source est un compartiment Amazon S3, n'oubliez pas de compresser le fichier JSON.

   1. Si votre pipeline comporte une étape de build, ajoutez une commande à votre fichier spécifique de build qui émet le fichier de définitions d'image dans votre référentiel source pendant la phase de build. L'exemple suivant utilise la commande **printf** pour créer un fichier `imagedefinitions.json`. Répertoriez cette commande dans la section `post_build` du fichier `buildspec.yml` :

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

      Vous devez inclure le fichier de définitions d'image en tant qu'artefact de sortie dans le fichier `buildspec.yml`.

1. Lors de la création de votre pipeline dans la console, vous devez saisir le nom du fichier de définitions d'image dans le champ **Nom du fichier image** de la page **Déploiement** de l'assistant **Créer un pipeline**.

Pour un step-by-step didacticiel sur la création d'un pipeline utilisant Amazon ECS comme fournisseur de déploiement, consultez [Tutoriel : Continuous Deployment with CodePipeline](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cd-pipeline.html).

## Fichier ImageDetail.json pour les actions de déploiement d'Amazon ECS blue/green
<a name="file-reference-ecs-bluegreen"></a>

Un `imageDetail.json` document est un fichier JSON qui décrit l'URI de votre image Amazon ECS. Si vous déployez des applications basées sur des conteneurs pour un blue/green déploiement, vous devez générer le `imageDetail.json` fichier pour fournir à Amazon ECS et au travailleur CodeDeploy l'identification de l'image à récupérer dans le référentiel d'images, tel qu'Amazon ECR.

**Note**  
Le nom du fichier doit être `imageDetail.json`.

Pour une description de l'action et de ses paramètres, consultez[Amazon Elastic Container Service et référence d'actions de déploiement CodeDeploy bleu-vert](action-reference-ECSbluegreen.md).

Vous devez créer le fichier `imageDetail.json` en tant que source ou artefact de génération afin qu'il soit un artefact d'entrée pour l'action de déploiement. Vous pouvez utiliser l'une de ces méthodes pour fournir le fichier `imageDetail.json` dans le pipeline : 
+ Incluez le `imageDetail.json` fichier dans votre emplacement source afin qu'il soit fourni dans le pipeline en tant qu'entrée de votre action de blue/green déploiement Amazon ECS.
**Note**  
Si votre référentiel source est un compartiment Amazon S3, n'oubliez pas de compresser le fichier JSON.
+ Les actions de source Amazon ECR génèrent automatiquement un `imageDetail.json` fichier en tant qu'artefact d'entrée pour l'action suivante.
**Note**  
Étant donné que l'action source Amazon ECR crée ce fichier, les pipelines dotés d'une action source Amazon ECR n'ont pas besoin de fournir un `imageDetail.json` fichier manuellement.   
Pour un didacticiel sur la création d'un pipeline incluant un stage source Amazon ECR, consultez[Tutoriel : Création d'un pipeline avec une source Amazon ECR et déploiement ECS-to-CodeDeploy](tutorials-ecs-ecr-codedeploy.md).

![\[Schéma illustrant le fichier ImageDetail.json contenu dans le compartiment d'artefacts\]](http://docs.aws.amazon.com/fr_fr/codepipeline/latest/userguide/images/imageDetail_file_diagram.png)


Le fichier `imageDetail.json` fournit l'URI de l'image. Il doit être construit avec la paire clé-valeur suivante.


| Clé | Valeur | 
| --- | --- | 
| ImageURI | image\$1URI | 

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

Voici la structure JSON, dans laquelle l'URI de l'image est `ACCOUNTID.dkr.ecr.us-west-2.amazonaws.com/dk-image-repo@sha256:example3`:

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

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

Un `imageDetail.json` fichier est généré automatiquement par l'action source Amazon ECR chaque fois qu'une modification est envoyée au référentiel d'images. Les actions source `imageDetail.json` générées par Amazon ECR sont fournies sous forme d'artefact de sortie entre l'action source et l'action suivante du pipeline.

Voici la structure JSON, dans laquelle le nom du référentiel est `dk-image-repo`, l'URI de l'image est `ecs-repo` et la balise de l'image est `latest` :

```
{
    "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"
    ]
}
```

Le `imageDetail.json` fichier associe l'URI de l'image et le nom du conteneur à la définition de tâche Amazon ECS comme suit :
+ `ImageSizeInBytes` : taille, en octets, de l'image dans le référentiel.
+ `ImageDigest` : hachage `sha256` du manifeste de l'image.
+ `Version` : version de l'image.
+ `ImagePushedAt` : date et heure de la transmission de la dernière image dans le référentiel.
+ `RegistryId`: ID de AWS compte associé au registre qui contient le référentiel.
+ `RepositoryName`: nom du référentiel Amazon ECR dans lequel l'image a été transférée.
+ `ImageURI` : URI de l'image.
+ `ImageTags` : balise utilisée pour l'image.

------

Avant de créer votre pipeline, suivez les étapes suivantes pour configurer le fichier `imageDetail.json`.

1. Dans le cadre de la planification du blue/green déploiement d'applications basées sur des conteneurs pour votre pipeline, planifiez l'étape source et la phase de génération, le cas échéant.

1. Sélectionnez l’une des méthodes suivantes :

   1.  Si votre pipeline a ignoré l'étape de construction, vous devez créer manuellement le fichier JSON et le télécharger dans votre référentiel source, par exemple CodeCommit, afin que l'action source puisse fournir l'artefact. Créez le fichier à l'aide de l'éditeur de texte et nommez-le ou utilisez le nom de fichier `imageDetail.json` par défaut. Procédez à la transmission du fichier `imageDetail.json` dans votre référentiel source.

   1. Si votre pipeline comporte une étape de génération, procédez comme suit :

      1. Ajoutez une commande à votre fichier de spécification de génération qui émet le fichier de définitions d'image dans votre référentiel source pendant la phase de génération. L'exemple suivant utilise la commande **printf** pour créer un fichier `imageDetail.json`. Répertoriez cette commande dans la section `post_build` du fichier buildspec.yml :

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

         Vous devez inclure le fichier `imageDetail.json` en tant qu'artefact de sortie dans le fichier `buildspec.yml`.

      1. Ajoutez le fichier `imageDetail.json` en tant qu'artefact dans le fichier `buildspec.yml`.

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