Ejecuta tareas de Amazon ECS o Fargate con Step Functions - AWS Step Functions

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.

Ejecuta tareas de Amazon ECS o Fargate con Step Functions

Aprenda a integrar Step Functions con Amazon ECS o Fargate para ejecutar y gestionar tareas. En AmazonECS, una tarea es la unidad de cálculo fundamental. Las tareas se definen mediante una definición de tareas que especifica cómo debe ejecutarse un contenedor Docker, incluida la imagen del contenedor, los límites de memoria, CPU la configuración de la red y otros parámetros. En esta página se enumeran las ECS API acciones de Amazon disponibles y se proporcionan instrucciones sobre cómo pasar datos a una ECS tarea de Amazon mediante Step Functions.

Step Functions puede controlar determinados AWS servicios directamente desde Amazon States Language (ASL). Para obtener más información, consulte Integración de otros servicios y Pasar parámetros a un servicio API en Step Functions.

En qué se diferencia la integración optimizada de ECS Amazon/Fargate de la integración de Amazon o ECS Fargate AWS SDK
  • Se admite el patrón de integración Ejecutar un trabajo (.sync).

  • ecs:runTaskpuede devolver una respuesta de HTTP 200, pero tener un campo no vacío Failures como el siguiente:

    • Respuesta de solicitud: devuelve la respuesta y no se producen errores en la tarea. Esto es lo mismo que no realizar ninguna optimización.

    • Ejecutar un trabajo o un token de tarea: si se encuentra un campo Failures que no está vacío, se produce un error AmazonECS.Unknown en la tarea.

ECSAmazon/Fargate compatibles APIs y sintaxis:

Los parámetros de se Step Functions expresan en PascalCase

Incluso si el servicio nativo API está encamelCase, por ejemplo, la API acciónstartSyncExecution, se especifican parámetros en PascalCase, como:StateMachineArn.

Transferencia de datos a una ECS tarea de Amazon

Step Functions puede controlar determinados AWS servicios directamente desde Amazon States Language (ASL). Para obtener más información, consulte Integración de otros servicios y Pasar parámetros a un servicio API en Step Functions.

Puedes usarlo overrides para anular el comando predeterminado de un contenedor y pasar la entrada a tus ECS tareas de Amazon. Consulte ContainerOverride. En el ejemplo, hemos utilizado JsonPath para pasar valores Task de la entrada al Task estado.

A continuación se incluye un Task estado que ejecuta una ECS tarea de Amazon y espera a que se complete.

{ "StartAt": "Run an ECS Task and wait for it to complete", "States": { "Run an ECS Task and wait for it to complete": { "Type": "Task", "Resource": "arn:aws:states:::ecs:runTask.sync", "Parameters": { "Cluster": "cluster-arn", "TaskDefinition": "job-id", "Overrides": { "ContainerOverrides": [ { "Name": "container-name", "Command.$": "$.commands" } ] } }, "End": true } } }

La línea "Command.$": "$.commands" en ContainerOverrides pasa los comandos de la entrada de estado al contenedor.

En el ejemplo anterior, cada uno de los comandos se transferirá como una anulación del contenedor si la entrada de la ejecución es la siguiente.

{ "commands": [ "test command 1", "test command 2", "test command 3" ] }

A continuación se incluye un Task estado en el que se ejecuta una ECS tarea de Amazon y, a continuación, se espera a que se devuelva el token de la tarea. Consulte Cómo esperar una devolución de llamada con el token de tarea.

{ "StartAt":"Manage ECS task", "States":{ "Manage ECS task":{ "Type":"Task", "Resource":"arn:aws:states:::ecs:runTask.waitForTaskToken", "Parameters":{ "LaunchType":"FARGATE", "Cluster":"cluster-arn", "TaskDefinition":"job-id", "Overrides":{ "ContainerOverrides":[ { "Name":"container-name", "Environment":[ { "Name":"TASK_TOKEN_ENV_VARIABLE", "Value.$":"$$.Task.Token" } ] } ] } }, "End":true } } }

Para obtener información sobre cómo configurar IAM los permisos cuando se utilizan Step Functions con otros AWS servicios, consulteCómo Step Functions genera IAM políticas para servicios integrados.