Administración de 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.

Administración de tareas de Amazon ECS o Fargate con Step Functions

Step Functions puede controlar ciertosAWSservicios directamente desde el Lenguaje de estados de Amazon. Para obtener más información acerca de cómo trabajar conAWS Step Functionsy sus integraciones, vea los temas siguientes:

En qué se diferencia la integración optimizada de Amazon ECS/Fargate de Amazon ECS o FargateAWSIntegración de SDK
  • El patrón de integración .sync está disponible.

  • ecs:runTaskpuede devolver una respuesta HTTP 200, pero no está vacíaFailurescampo como se indica a continuación:

    • Respuesta de la solicitud: devuelve la respuesta y no falle la tarea. Esto es lo mismo que no hay optimización.

    • Cómo ejecutar un trabajo: si no está vacíoFailuresse encuentra, se ha producido un error en la tarea con unAmazonECS.Unknown.

    • Token de tarea: si no está vacíoFailuresse encuentra, se ha producido un error en la tarea con unAmazonECS.Unknown.

API de Amazon ECS/Fargate y sintaxis compatibles:

nota

Los parámetros de Step Functions se expresan enPascalCase, incluso cuando la API de servicio nativo escamelCase.

nota

Para el registroOverridesparámetro, Step Functions no admiteexecutionRoleArnotaskRoleArncomoContainerOverrides.

Cómo pasar datos a una tarea de Amazon ECS

Step Functions puede controlar ciertosAWSservicios directamente desde el Lenguaje de estados de Amazon. Para obtener más información acerca de cómo trabajar conAWS Step Functionsy sus integraciones, vea los temas siguientes:

Puede usaroverridespara anular el comando predeterminado de un contenedor de y pasar información de entrada a las tareas de Amazon ECS. Consulte ContainerOverride. En el ejemplo, hemos utilizado JsonPath para transferir valores a la Task desde la entrada al estado de Task.

El ejemplo siguiente incluye unTaskestado que ejecuta una tarea de Amazon ECS y espera a que finalice.

{ "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" ] }

El ejemplo siguiente incluye unTaskque ejecuta una tarea de Amazon ECS de y, a continuación, espera a que se devuelva el token de 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 más información acerca de cómo configurar IAM cuando utiliza Step Functions con otrosAWSservicios, consultePolíticas de IAM para servicios integrados.