Activities - 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.

Activities

Las actividades sonAWS Step Functionsque le permite tener una tarea en su máquina de estado donde el trabajo es realizado por untrabajadorque se pueden alojar en Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS) y dispositivos móviles, básicamente en cualquier lugar.

Overview

En AWS Step Functions, las actividades son una forma de asociar código que se ejecuta en algún lugar (conocido como un proceso de trabajo de actividad) con una tarea específica en una máquina de estado. Puede crear una actividad con la consola de Step Functions o llamando aCreateActivity. Proporciona un nombre de recurso de Amazon (ARN) para su estado de tarea. Utilice este ARN para sondear el estado de la tarea correspondiente al trabajo en su proceso de trabajo de actividad.

nota

Las actividades no tienen control de versiones y se espera que sean compatibles con versiones anteriores. Si debe realizar un cambio incompatible con versiones anteriores en una actividad, cree unNUEVOEn Step Functions mediante un nombre único.

Un proceso de trabajo de actividad puede ser una aplicación que se ejecuta en una instancia de Amazon EC2, unaAWS LambdaUna función de, un dispositivo móvil: cualquier aplicación que pueda realizar una conexión HTTP, alojada en cualquier lugar. Cuando Step Functions alcanza un estado de tarea de actividad, el flujo de trabajo espera a que un proceso de trabajo de actividad realice un sondeo de una tarea. Un trabajador de actividad sondea Step Functions medianteGetActivityTask, y enviando el ARN para la actividad relacionada.GetActivityTaskdevuelve una respuesta que incluyeinput(una cadena de entrada JSON para la tarea) y untaskToken(un identificador único para la tarea). Después de que el proceso de trabajo de actividad completa su trabajo, puede proporcionar un informe de si la operación se ha realizado correcta o incorrectamente mediante SendTaskSuccess o SendTaskFailure. Estas dos llamadas usan el taskToken que proporciona GetActivityTask para asociar el resultado con esa tarea.

API relacionadas con las tareas de actividad

Step Functions proporciona API para crear y enumerar actividades, solicitar una tarea y administrar el flujo de su máquina de estado en función de los resultados de su proceso de trabajo.

A continuación se indican las API de Step Functions que están relacionadas con las actividades:

nota

El sondeo de las tareas de actividad con GetActivityTask pueden provocar latencia en algunas implementaciones. Consulte Evite la latencia al sondeo de tareas de actividad.

Espera para que finalice una tarea de actividad

Establezca TimeoutSeconds en la definición de la tarea para configurar cuánto tiempo espera un estado. Para mantener la tarea activa y en espera, envíe periódicamente un latido de su proceso de trabajo de actividad mediante SendTaskHeartbeat dentro del tiempo configurado en TimeoutSeconds. Si configura un tiempo de espera largo y envía activamente un latido, una actividad en Step Functions puede esperar hasta un año a que se complete una ejecución.

Por ejemplo, si necesita un flujo de trabajo que espere el resultado de un proceso largo, haga lo siguiente:

  1. Cree una actividad con la consola o mediante CreateActivity. Tome nota del ARN de actividad.

  2. Haga referencia a ese ARN en un estado de tarea de actividad en el definición de la máquina de estado y establezca TimeoutSeconds.

  3. Implemente un proceso de trabajo de actividad que sondee el trabajo mediante GetActivityTask, haciendo referencia a ese ARN de actividad.

  4. Utilice SendTaskHeartbeat periódicamente dentro del tiempo establecido en HeartbeatSeconds en la definición de tarea de máquina de estado para evitar que se agote el tiempo de espera de la tarea.

  5. Comience una ejecución de su máquina de estado.

  6. Comience su proceso de trabajo de actividad.

La ejecución se pone en pausa en el estado de la tarea de actividad y espera a que el proceso de trabajo de actividad realice un sondeo de una tarea. Una vez que se proporciona un taskToken a su proceso de trabajo de actividad, su flujo de trabajo esperará a que SendTaskSuccess o SendTaskFailure proporcione un estado. Si la ejecución no recibe ninguno de ellos ni una llamada a SendTaskHeartbeat antes del tiempo configurado en TimeoutSeconds, se producirá un error en la ejecución y el historial de ejecución contendrá un evento ExecutionTimedOut.

Pasos siguientes

Para obtener información más detallada sobre la creación de máquinas de estado que utilizan trabajadores de una actividad, consulte: