Referencia de acción de implementación de Amazon Elastic Container Service - AWS CodePipeline

Referencia de acción de implementación de Amazon Elastic Container Service

Puede utilizar una acción de Amazon ECS para implementar un conjunto de tareas y un servicio de Amazon ECS. Un servicio de Amazon ECS es una aplicación de contenedor que se implementa en un clúster de Amazon ECS. Un clúster de Amazon ECS es una colección de instancias que alojan su aplicación de contenedores en la nube. La implementación requiere una definición de tareas que cree en Amazon ECS y un archivo de definiciones de imágenes que CodePipeline utilice para implementar la imagen.

importante

La acción de implementación estándar de Amazon ECS para CodePipeline crea su propia revisión de la definición de la tarea en función de la revisión utilizada por el servicio Amazon ECS. Si crea nuevas revisiones para la definición de la tarea sin actualizar el servicio Amazon ECS, la acción de implementación ignorará esas revisiones.

Antes de crear la canalización, debe haber creado los recursos de Amazon ECS, haber etiquetado y almacenado la imagen en su repositorio de imágenes y haber cargado el archivo BuildSpec en su repositorio de archivos.

nota

En este tema de referencia se describe la acción de implementación estándar de Amazon ECS para CodePipeline. Para obtener información de referencia sobre Amazon ECS para acciones de implementación azul/verde de CodeDeploy en CodePipeline, consulte Referencia de acciones de implementación de Amazon Elastic Container Service y CodeDeploy azul-verde.

Tipo de acción

  • Categoría: Deploy

  • Propietario: : AWS

  • Proveedor: ECS

  • Versión: 1

Parámetros de configuración

ClusterName

Obligatorio: sí

El clúster de Amazon ECS en Amazon ECS.

ServiceName

Obligatorio: sí

El servicio de Amazon ECS que creó en Amazon ECS.

FileName

Obligatorio: no

El nombre de su archivo de definiciones de imagen, el archivo JSON que describe el nombre del contenedor de su servicio y la imagen y la etiqueta. Este archivo se utiliza para las implementaciones estándar de ECS. Para obtener más información, consulte Artefactos de entrada y Archivo imagedefinitions.json para las acciones de implementación estándar de .

DeploymentTimeout

Obligatorio: no

El tiempo de espera de la acción de implementación de Amazon ECS en minutos. El tiempo de espera se puede configurar hasta el tiempo de espera predeterminado máximo para esta acción. Por ejemplo:

"DeploymentTimeout": "15"

Artefactos de entrada

  • Número de artefactos: 1

  • Descripción: la acción busca un archivo imagedefinitions.json en el repositorio de archivos de origen para la canalización. 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. CodePipeline usa el archivo para recuperar la imagen del repositorio de imágenes, como Amazon ECR. Puede añadir manualmente un archivo imagedefinitions.json para una canalización en la que la acción no esté automatizada. Para obtener más información sobre el archivo imagedefinitions.json, consulte Archivo imagedefinitions.json para las acciones de implementación estándar de .

    La acción requiere una imagen existente que ya se haya subido a su repositorio de imágenes. Como la asignación de imágenes la proporciona el archivo imagedefinitions.json, la acción no requiere que el origen de Amazon ECR se incluya como acción de origen en el proceso.

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 estándar de Amazon ECS

A continuación se indican los permisos mínimos necesarios en Amazon ECS para crear canalizaciones con una acción de implementación de Amazon ECS.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "TaskDefinitionPermissions", "Effect": "Allow", "Action": [ "ecs:DescribeTaskDefinition", "ecs:RegisterTaskDefinition" ], "Resource": [ "*" ] }, { "Sid": "ECSServicePermissions", "Effect": "Allow", "Action": [ "ecs:DescribeServices", "ecs:UpdateService" ], "Resource": [ "arn:aws:ecs:*:111122223333:service/[[clusters]]/*" ] }, { "Sid": "ECSTagResource", "Effect": "Allow", "Action": [ "ecs:TagResource" ], "Resource": [ "arn:aws:ecs:*:111122223333:task-definition/[[taskDefinitions]]:*" ], "Condition": { "StringEquals": { "ecs:CreateAction": [ "RegisterTaskDefinition" ] } } }, { "Sid": "IamPassRolePermissions", "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::111122223333:role/[[passRoles]]" ], "Condition": { "StringEquals": { "iam:PassedToService": [ "ecs.amazonaws.com", "ecs-tasks.amazonaws.com" ] } } } ] }

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 roles 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. Utilice la siguiente política:

Declaración de acciones

YAML
Name: DeployECS ActionTypeId: Category: Deploy Owner: AWS Provider: ECS Version: '1' RunOrder: 2 Configuration: ClusterName: my-ecs-cluster ServiceName: sample-app-service FileName: imagedefinitions.json DeploymentTimeout: '15' OutputArtifacts: [] InputArtifacts: - Name: my-image
JSON
{ "Name": "DeployECS", "ActionTypeId": { "Category": "Deploy", "Owner": "AWS", "Provider": "ECS", "Version": "1" }, "RunOrder": 2, "Configuration": { "ClusterName": "my-ecs-cluster", "ServiceName": "sample-app-service", "FileName": "imagedefinitions.json", "DeploymentTimeout": "15" }, "OutputArtifacts": [], "InputArtifacts": [ { "Name": "my-image" } ] },

Los recursos relacionados siguientes pueden serle de ayuda cuando trabaje con esta acción.

  • Consulte en Tutorial: compilación e inserción de una imagen de Docker en Amazon ECR con CodePipeline (tipo V2) un tutorial que muestra cómo utilizar la acción ECRBuildandPublish para insertar una imagen y, a continuación, utilizar la acción estándar de ECS para su implementación en Amazon ECS.

  • Tutorial: Implementación continua con CodePipeline: en este tutorial se muestra cómo crear un Dockerfile que se almacena en un repositorio de archivos de origen como CodeCommit. A continuación, en el tutorial se muestra cómo incorporar un archivo CodeBuild BuildSpec que compila y envía la imagen de Docker a Amazon ECR y crea el archivo imagedefinitions.json. Por último, se crea una definición de tareas y servicios de Amazon ECS y, a continuación, se crea la canalización con una acción de implementación de Amazon ECS.

    nota

    En este tema y tutorial se describe la acción de implementación estándar de Amazon ECS para CodePipeline. Para obtener información sobre Amazon ECS para acciones de implementación azul/verde de CodeDeploy en CodePipeline, consulte Tutorial: Crear una canalización con un origen de Amazon ECR y una implementación de ECS-to-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, los servicios y clústeres de Amazon ECS y los conjuntos de tareas de Amazon ECS, consulte ¿Qué es Amazon ECS?