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 de acciones de implementación de Amazon Elastic Container Service y CodeDeploy azul-verde
Puede configurar una canalización para implementar aplicaciones de contenedor mediante una blue/green implementación. AWS CodePipeline En una blue/green implementación, puede lanzar una nueva versión de la aplicación junto con la versión anterior y probar la nueva versión antes de redirigir el tráfico hacia ella. También puede monitorizar el proceso de implementación y revertirlo rápidamente si hay algún problema.
La canalización completa detecta los cambios en las imágenes o en el archivo de definición de tareas y los utiliza CodeDeploy para enrutar e implementar el tráfico en un clúster y un balanceador de cargas de Amazon ECS. CodeDeploy crea un nuevo receptor en su balanceador de cargas que puede dirigir su nueva tarea a través de un puerto especial. También puede configurar la canalización para que utilice una ubicación de origen, como un CodeCommit repositorio, donde se almacena la definición de la tarea de Amazon ECS.
Antes de crear la canalización, debe haber creado los recursos de Amazon ECS, los CodeDeploy recursos y el balanceador de cargas y el grupo objetivo. Ya debe haber etiquetado y almacenado la imagen en su repositorio de imágenes y haber subido la definición de la tarea y el AppSpec archivo a su repositorio de archivos.
nota
En este tema se describe la acción de CodeDeploy blue/green implementación de Amazon ECS CodePipeline. Para obtener información de referencia sobre las acciones de implementación estándar de Amazon ECS en CodePipeline, consulteReferencia de acción de implementación de Amazon Elastic Container Service.
Temas
Tipo de acción
-
Categoría:
Deploy -
Propietario:
AWS -
Proveedor:
CodeDeployToECS -
Versión:
1
Parámetros de configuración
- ApplicationName
-
Obligatorio: sí
El nombre de la aplicación en CodeDeploy. Antes de crear tu canalización, debes haber creado la aplicación en CodeDeploy.
- DeploymentGroupName
-
Obligatorio: sí
El grupo de implementación especificado para los conjuntos de tareas de Amazon ECS que creó para su CodeDeploy aplicación. Antes de crear la canalización, debe haber creado el grupo de implementación en CodeDeploy.
- TaskDefinitionTemplateArtifact
-
Obligatorio: sí
El nombre del artefacto de entrada que proporciona el archivo de definición de tareas a la acción de implementación. Este es generalmente el nombre del artefacto de salida de la acción de origen. Cuando utiliza la consola, el nombre por defecto del artefacto de salida de la acción de origen es
SourceArtifact. - AppSpecTemplateArtifact
-
Obligatorio: sí
El nombre del artefacto de entrada que proporciona el AppSpec archivo para la acción de implementación. Este valor se actualiza cuando se ejecuta la canalización. Este es generalmente el nombre del artefacto de salida de la acción de origen. Cuando utiliza la consola, el nombre por defecto del artefacto de salida de la acción de origen es
SourceArtifact. Si estáTaskDefinitionen AppSpec un archivo, puede conservar el texto del<TASK_DEFINITION>marcador de posición tal y como se muestra aquí. - AppSpecTemplatePath
-
Obligatorio: no
El nombre del archivo almacenado en la ubicación del AppSpec archivo fuente de la canalización, como el CodeCommit repositorio de la canalización. El nombre del archivo predeterminado es
appspec.yaml. Si tu AppSpec archivo tiene el mismo nombre y está almacenado en el nivel raíz de tu repositorio de archivos, no necesitas proporcionar el nombre del archivo. Si la ruta no es la predeterminada, introdúzcala con el nombre del archivo. - TaskDefinitionTemplatePath
-
Obligatorio: no
El nombre de archivo de la definición de tarea almacenada en la ubicación de origen del archivo de canalización, como el CodeCommit repositorio de tu canalización. El nombre del archivo predeterminado es
taskdef.json. Si el archivo de definición de tarea tiene el mismo nombre y está almacenado en el nivel raíz del repositorio de archivos, no es necesario que proporcione el nombre del archivo. Si la ruta no es la predeterminada, introdúzcala con el nombre del archivo. - Imagen <Number>ArtifactName
-
Obligatorio: no
El nombre del artefacto de entrada que proporciona la imagen a la acción de implementación. Por lo general, se trata del artefacto de salida del repositorio de imágenes, como el resultado de la acción de origen de Amazon ECR.
Los valores disponibles para
<Number>son del 1 al 4. - Imagen <Number>ContainerName
-
Obligatorio: no
El nombre de la imagen disponible en el repositorio de imágenes, como el repositorio de origen de Amazon ECR.
Los valores disponibles para
<Number>son del 1 al 4.
Artefactos de entrada
-
Número de artefactos:
1 to 5 -
Descripción: La
CodeDeployToECSacción busca primero el archivo de definición de tareas y el AppSpec archivo en el repositorio de archivos de origen, luego busca la imagen en el repositorio de imágenes, genera dinámicamente una nueva revisión de la definición de tareas y, por último, ejecuta los AppSpec comandos para implementar el conjunto de tareas y el contenedor en el clúster.La acción
CodeDeployToECSbusca un archivoimageDetail.jsonque asigne el URI de la imagen a la imagen. Cuando se confirma un cambio en el repositorio de imágenes de Amazon ECR, la acción de origen de ECR de la canalización crea un archivoimageDetail.jsonpara dicha confirmación. También puede añadir manualmente un archivoimageDetail.jsonpara una canalización en la que la acción no esté automatizada. Para obtener más información sobre el archivoimageDetail.json, consulte Detail.json archivo de imagen para las acciones de blue/green implementación de Amazon ECS.La acción
CodeDeployToECSgenera de forma dinámica una nueva revisión de la definición de la tarea. En esta fase, esta acción sustituye los marcadores de posición del archivo de definición de tareas por el URI de la imagen recuperada de Detail.json los archivos de imagen. Por ejemplo, si establece IMAGE1_NAME como Image1ContainerName parámetro, debe especificar el marcador de posición <IMAGE1_NAME>como el valor del campo de imagen en su archivo de definición de tareas. En este caso, la CodeDeployToECS acción reemplaza el marcador de posición por el <IMAGE1_NAME>URI real de la imagen recuperada de la imagen del artefacto que Detail.json especifiques. Image1ArtifactNameEn el caso de las actualizaciones de definiciones de tareas, el CodeDeploy
AppSpec.yamlarchivo contiene laTaskDefinitionpropiedad.TaskDefinition: <TASK_DEFINITION>La acción
CodeDeployToECSactualizará esta propiedad mediante la acción una vez creada la nueva definición de tarea.Para el valor del campo
TaskDefinition, el texto del marcador de posición debe ser <TASK_DEFINITION>. La acciónCodeDeployToECSreemplaza este marcador de posición por el ARN real de la definición de tarea generada dinámicamente.
Artefactos de salida
-
Número de artefactos:
0 -
Descripción: los artefactos de salida no se aplican a este tipo de acción.
Permisos del rol de servicio: acción de CodeDeployToECS
Para la CodeDeployToECS acción (blue/green despliegues), los siguientes son los permisos mínimos necesarios para crear canalizaciones con una acción de blue/green implementación CodeDeploy hacia Amazon ECS.
Puede optar por utilizar la autorización de etiquetado en Amazon ECS. Al suscribirse, debe otorgar los siguientes permisos: ecs:TagResource. Para obtener más información sobre cómo suscribirse y determinar si el permiso es obligatorio y si se aplica la autorización de etiquetas, consulte el Plazos de la autorización de etiquetado en la Guía para desarrolladores de Amazon Elastic Container Service.
También debe añadir los permisos iam:PassRole para utilizar los rones de IAM en las tareas. Para obtener más información, consulte Rol de ejecución de tareas de Amazon ECS y Roles de IAM para tareas.
También puede añadir ecs-tasks.amazonaws.com a la lista de servicios con la condición iam:PassedToService, como se muestra en el ejemplo anterior.
Declaración de acciones
Véase también
Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.
-
Tutorial: Creación de una canalización con una fuente e ECS-to-CodeDeploy implementación de Amazon ECR— En este tutorial se explica cómo crear los recursos de Amazon ECS CodeDeploy y los recursos de Amazon ECS que necesita para una blue/green implementación. El tutorial muestra cómo insertar una imagen de Docker en Amazon ECR y cómo crear una definición de tarea de Amazon ECS que incluya el nombre de la imagen de Docker, el nombre del contenedor, el nombre del servicio de Amazon ECS y la configuración del equilibrador de carga. A continuación, el tutorial le explica cómo crear el AppSpec archivo y la canalización para su implementación.
nota
En este tema y en este tutorial se describe la CodeDeploy/ECS blue/green acción para CodePipeline. Para obtener información sobre las acciones estándar de ECS en CodePipeline, consulte Tutorial: Continuous Deployment with CodePipeline.
-
AWS CodeDeploy Guía del usuario: para obtener información sobre cómo usar el balanceador de cargas, el detector de producción, los grupos objetivo y la aplicación de Amazon ECS en una blue/green implementación, consulte el tutorial: Implementación de un servicio de Amazon ECS. Esta información de referencia de la guía del AWS CodeDeploy usuario proporciona una descripción general de las blue/green implementaciones con Amazon ECS y. AWS CodeDeploy
-
Guía para desarrolladores de Amazon Elastic Container Service: para obtener información sobre cómo trabajar con imágenes y contenedores de Docker, servicios y clústeres de ECS y conjuntos de tareas de ECS, consulte ¿Qué es Amazon ECS?