

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Referencia del archivo de definiciones de imágenes
<a name="file-reference"></a>

Esta sección se incluye solo como referencia. Para obtener más información sobre cómo crear una canalización con acciones de código fuente o de implementación para contenedores, consulte [Creación de una canalización, etapas y acciones](pipelines-create.md).

AWS CodePipeline Los trabajadores de trabajo para acciones de contenedores, como una acción fuente de Amazon ECR o acciones de implementación de Amazon ECS, utilizan archivos de definiciones para asignar el URI de la imagen y el nombre del contenedor a la definición de la tarea. Cada archivo de definiciones es un archivo con formato JSON que el proveedor de la acción utiliza como se indica a continuación:
+ Las implementaciones estándar de Amazon ECS requieren un archivo `imagedefinitions.json` como entrada para la acción de implementación. Para ver un tutorial que utiliza la acción de despliegue estándar de Amazon ECS en CodePipeline, consulte[Tutorial: Implementación estándar de Amazon ECS con CodePipeline](ecs-cd-pipeline.md). Para ver otro ejemplo de tutorial en el que se utiliza la acción de despliegue estándar de Amazon ECS CodePipeline junto con la ECRBuild AndPublish acción, consulte[Tutorial: Cree e inserte una imagen de Docker en Amazon ECR con CodePipeline (tipo V2)](tutorials-ecr-build-publish.md).
+  blue/green Las implementaciones de Amazon ECS requieren un `imageDetail.json` archivo como entrada para la acción de implementación. Para ver un tutorial con un ejemplo de blue/green implementación, consulte[Tutorial: Creación de una canalización con una fuente y ECS-to-CodeDeploy una implementación de Amazon ECR](tutorials-ecs-ecr-codedeploy.md).
  + Las acciones de código fuente de Amazon ECR generan un archivo `imageDetail.json` que se suministra como salida de la acción de código fuente.

**Topics**
+ [Archivo imagedefinitions.json para las acciones de implementación estándar de](#pipelines-create-image-definitions)
+ [Archivo ImageDetail.json para las acciones de implementación de Amazon ECS blue/green](#file-reference-ecs-bluegreen)

## Archivo imagedefinitions.json para las acciones de implementación estándar de
<a name="pipelines-create-image-definitions"></a>

Un documento de definiciones de imágenes es un archivo JSON que describe el nombre, la imagen y la etiqueta del contenedor del servicio de Amazon ECS. Si va a implementar aplicaciones basadas en contenedores, debe generar un archivo de definiciones de imágenes para proporcionar al trabajador el contenedor CodePipeline de Amazon ECS y la identificación de la imagen para recuperarla del repositorio de imágenes, como Amazon ECR.

**nota**  
El nombre predeterminado del archivo es `imagedefinitions.json`. Si utiliza otro nombre de archivo, debe proporcionarlo al crear la etapa de implementación de la canalización.

Cree el archivo `imagedefinitions.json` teniendo en cuenta lo siguiente:
+ El archivo debe utilizar la codificación UTF-8.
+ El límite de tamaño máximo de archivo para el archivo de definiciones de imágenes es de 100 KB.
+ Debe crear el archivo como un artefacto de código fuente o de compilación para que sea un artefacto de entrada para la acción de implementación. En otras palabras, asegúrese de que el archivo se haya cargado en la ubicación de origen, por ejemplo, en el CodeCommit repositorio, o que se haya generado como un artefacto de salida creado.

El archivo `imagedefinitions.json` proporciona el nombre del contenedor y el URI de la imagen. Debe crearse con el siguiente conjunto de pares clave-valor.


| Clave | Valor | 
| --- | --- | 
| name | container\$1name | 
| imageURI | imageUri | 

**nota**  
El campo de nombre se usa para el nombre de la imagen del contenedor, es decir, el nombre de la imagen de Docker.

Esta es la estructura JSON, donde el nombre del contenedor es `sample-app`, la URI de la imagen es `ecs-repo` y la etiqueta es `latest`:

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

También puede construir el archivo para que incluya varios pares contenedor-imagen. 

Estructura JSON:

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

Antes de crear la canalización, siga los pasos que se indican a continuación para configurar el archivo `imagedefinitions.json`.

1. Como parte de la planificación de la implementación de aplicaciones basadas en contenedores para la canalización, planifique la etapa de código fuente y la etapa de compilación, si procede.

1. Seleccione una de las siguientes opciones:

   1.  Si la canalización se crea de forma que salta la etapa de compilación, debe crear manualmente el archivo JSON y cargarlo en el repositorio de origen a fin de que la acción de origen pueda proporcionar el artefacto. Cree el archivo con un editor de texto y asígnele un nombre, o utilice el nombre de archivo `imagedefinitions.json` predeterminado. Envíe el archivo de definiciones de imágenes al repositorio de código fuente.
**nota**  
Recuerde comprimir el archivo JSON si el repositorio de origen es un bucket de .

   1. Si la canalización dispone de una etapa de compilación, añada un comando al archivo de especificación de compilación que genera el archivo de definiciones de imágenes en el repositorio de código fuente durante la etapa de compilación. En el siguiente ejemplo, se utiliza el comando **printf** para crear un archivo `imagedefinitions.json`. Incluya este comando en la sección `post_build` del archivo `buildspec.yml`:

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

      Debe incluir el archivo de definiciones de imágenes como artefacto de salida en el archivo `buildspec.yml`.

1. Al crear la canalización en la consola, introduzca el nombre del archivo de definiciones de imágenes en el campo **Image Filename (Nombre del archivo de imágenes)** de la página **Deploy (Implementación)** del asistente **Create Pipeline (Crear canalización)**.

Para ver un step-by-step tutorial sobre cómo crear una canalización que utilice Amazon ECS como proveedor de implementación, consulte [Tutorial: Implementación continua con CodePipeline](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cd-pipeline.html).

## Archivo ImageDetail.json para las acciones de implementación de Amazon ECS blue/green
<a name="file-reference-ecs-bluegreen"></a>

Un documento `imageDetail.json` es un archivo JSON que describe el URI de una imagen de Amazon ECS. Si va a implementar aplicaciones basadas en contenedores para una blue/green implementación, debe generar el `imageDetail.json` archivo para proporcionar a Amazon ECS y al trabajador CodeDeploy laboral la identificación de imagen para recuperarla del repositorio de imágenes, como Amazon ECR.

**nota**  
El nombre del archivo debe ser `imageDetail.json`.

Para ver una descripción de la acción y el resto de parámetros, consulte [Referencia de acciones de despliegue de Amazon Elastic Container Service y CodeDeploy azul-verde](action-reference-ECSbluegreen.md).

Debe crear el archivo `imageDetail.json` como un artefacto de código fuente o de compilación para que sea un artefacto de entrada para la acción de implementación. Puede utilizar uno de estos métodos para proporcionar el archivo `imageDetail.json` en la canalización: 
+ Incluya el `imageDetail.json` archivo en su ubicación de origen para que se incluya en la canalización como entrada para la acción de blue/green despliegue de Amazon ECS.
**nota**  
Recuerde comprimir el archivo JSON si el repositorio de origen es un bucket de .
+ Las acciones de origen de Amazon ECR generan automáticamente un archivo `imageDetail.json` como artefacto de entrada para la acción siguiente.
**nota**  
Dado que la acción de origen de Amazon ECR crea este archivo, no es necesario que las canalizaciones con una acción de origen de Amazon ECR proporcionen de forma manual un archivo `imageDetail.json`.   
Para obtener un tutorial sobre la creación de una canalización que incluya una etapa de origen de Amazon ECR, consulte [Tutorial: Creación de una canalización con una fuente y ECS-to-CodeDeploy una implementación de Amazon ECR](tutorials-ecs-ecr-codedeploy.md).

![\[Diagrama que muestra el archivo imageDetail.json contenido en el bucket de artefactos\]](http://docs.aws.amazon.com/es_es/codepipeline/latest/userguide/images/imageDetail_file_diagram.png)


El archivo `imageDetail.json` proporciona el URI de la imagen. Debe crearse con el siguiente par clave-valor.


| Clave | Valor | 
| --- | --- | 
| ImageURI | image\$1URI | 

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

A continuación, se muestra la estructura JSON, donde el URI de la imagen es `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) ]

La acción de origen de Amazon ECR genera automáticamente un archivo `imageDetail.json` cada vez que se envía un cambio al repositorio de imágenes. El archivo `imageDetail.json` generado por las acciones de origen de Amazon ECR se suministra como artefacto de salida de la acción de origen a la siguiente acción de la canalización.

A continuación, se muestra la estructura JSON, donde el nombre del repositorio es `dk-image-repo`, el URI de la imagen es `ecs-repo` y la etiqueta de la imagen es `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"
    ]
}
```

El archivo `imageDetail.json` asigna el URI de la imagen y nombre del contenedor a la definición de tareas de Amazon ECS, tal y como se indica a continuación:
+ `ImageSizeInBytes`: el tamaño, en bytes, de la imagen en el repositorio.
+ `ImageDigest`: el resumen `sha256` del manifiesto de la imagen.
+ `Version`: la versión de la imagen.
+ `ImagePushedAt`: la fecha y la hora en que se envió la imagen más reciente al repositorio.
+ `RegistryId`: el ID de AWS cuenta asociado al registro que contiene el repositorio.
+ `RepositoryName`: el nombre del repositorio de Amazon ECR al que se envió la imagen.
+ `ImageURI`: el URI de la imagen.
+ `ImageTags`: la etiqueta utilizada para la imagen.

------

Antes de crear la canalización, siga los pasos que se indican a continuación para configurar el archivo `imageDetail.json`.

1. Como parte de la planificación del blue/green despliegue de aplicaciones basadas en contenedores para su canalización, planifique la fase de origen y la fase de creación, si procede.

1. Seleccione una de las siguientes opciones:

   1.  Si tu proceso se ha saltado la fase de creación, debes crear el archivo JSON de forma manual y subirlo a tu repositorio de origen, por ejemplo, para que CodeCommit la acción fuente pueda proporcionar el artefacto. Cree el archivo con un editor de texto y asígnele un nombre, o utilice el nombre de archivo `imageDetail.json` predeterminado. Envíe el `imageDetail.json` archivo al repositorio de código fuente.

   1. Si la canalización tiene una etapa de compilación, haga lo siguiente:

      1. Añada un comando al archivo de especificación de compilación que genera el archivo de definiciones de imágenes en el repositorio de código fuente durante la fase de compilación. En el siguiente ejemplo, se utiliza el comando **printf** para crear un archivo `imageDetail.json`. Incluya este comando en la sección `post_build` del archivo buildspec.yml:

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

         Debe incluir el archivo `imageDetail.json` como artefacto de salida en el archivo `buildspec.yml`.

      1. Añada el archivo `imageDetail.json` como artefacto en el archivo `buildspec.yml`.

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