Referencia del archivo de definiciones de imágenes
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.
Los procesos de trabajo de AWS CodePipeline para las acciones de contenedor, como por ejemplo, una acción de origen de Amazon ECR o las acciones de implementación de Amazon ECR, utilizan archivos de definiciones para asignar el URI de la imagen y el nombre del contenedor a la definición de 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 implementación estándar de Amazon ECS en CodePipeline, consulte Tutorial: Implementación estándar de Amazon ECS con CodePipeline. -
Las Implementaciones azul/verde de Amazon ECS necesitan un archivo
imageDetail.json
como entrada para la acción de implementación. Para ver un tutorial con un ejemplo de implementación azul/verde, consulte Tutorial: Crear una canalización con un origen de Amazon ECR y una implementación de ECS-to-CodeDeploy.-
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.
-
Temas
Archivo imagedefinitions.json para las acciones de implementación estándar de
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 que proporcione al proceso de trabajo de CodePipeline el contenedor de Amazon ECS y la identificación de la imagen que se debe recuperar del repositorio de imagen, 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 cargue en su ubicación de origen, como su repositorio de CodeCommit o se genere como un artefacto de salida construido.
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 | nombre_del_contenedor |
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
.
-
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.
-
Seleccione una de las siguientes opciones:
-
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 .
-
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ónpost_build
del archivobuildspec.yml
:printf '[{"name":"
container_name
","imageUri":"image_URI
"}]' > imagedefinitions.jsonDebe incluir el archivo de definiciones de imágenes como artefacto de salida en el archivo
buildspec.yml
.
-
-
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 tutorial paso a paso sobre la creación de una canalización que utiliza Amazon ECS como proveedor de implementación, consulte Tutorial: Implementación continua con CodePipeline.
Archivo imageDetail.json para las acciones de implementación blue/green de
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 implementación blue/green, debe generar el archivo imageDetail.json
para proporcionar al proceso de trabajo de Amazon ECS y de CodeDeploy la identificación de la imagen que se debe recuperar del repositorio, por ejemplo, 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 implementación de Amazon Elastic Container Service y CodeDeploy azul-verde.
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 archivo
imageDetail.json
en la ubicación de origen para que se proporcione en la canalización como entrada de la acción de implementación azul/verde 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: Crear una canalización con un origen de Amazon ECR y una implementación de ECS-to-CodeDeploy.
El archivo imageDetail.json
proporciona el URI de la imagen. Debe crearse con el siguiente par clave-valor.
Clave | Valor |
---|---|
ImageURI | URI_de_la_imagen |
Antes de crear la canalización, siga los pasos que se indican a continuación para configurar el archivo imageDetail.json
.
-
Como parte de la planificación de la implementación blue/green de aplicaciones basadas en contenedores para la canalización, planifique la etapa de código fuente y la etapa de compilación, si procede.
-
Seleccione una de las siguientes opciones:
-
Si la canalización ha omitido la etapa de compilación, debe crear manualmente el archivo JSON y cargarlo en el repositorio de origen, por ejemplo, CodeCommit, con objeto 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
imageDetail.json
predeterminado. Envíe elimageDetail.json
archivo al repositorio de código fuente. -
Si la canalización tiene una etapa de compilación, haga lo siguiente:
-
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ónpost_build
del archivo buildspec.yml:printf '{"ImageURI":"
image_URI
"}' > imageDetail.jsonDebe incluir el archivo
imageDetail.json
como artefacto de salida en el archivobuildspec.yml
. -
Añada el archivo
imageDetail.json
como artefacto en el archivobuildspec.yml
.artifacts: files: - imageDetail.json
-
-