Estructura de máquinas de estados en Amazon States Language para flujos de trabajo de 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.

Estructura de máquinas de estados en Amazon States Language para flujos de trabajo de Step Functions

Las máquinas de estados se definen mediante JSON texto que representa una estructura que contiene los siguientes campos.

Comment (opcional)

Descripción en lenguaje natural de la máquina de estado.

StartAt (Obligatorio)

Cadena que debe coincidir exactamente (mayúsculas y minúsculas) con el nombre de uno de los objetos de estado.

TimeoutSeconds(Opcional)

Número máximo de segundos que puede tardar una ejecución de la máquina de estado. Si se ejecuta durante más tiempo que el especificado, se produce un error en la ejecución con un nombre de error States.Timeout.

Version (opcional)

Versión de Amazon States Language que se utiliza en la máquina de estado (el valor predeterminado es "1.0").

States (Obligatorio)

Objeto que contiene un conjunto de estados separados por comas.

El campo States contiene estados.

{ "State1" : { }, "State2" : { }, ... }

Las máquinas de estado se definen por los estados que contienen y la relación entre ellos.

A continuación, se muestra un ejemplo.

{ "Comment": "A Hello World example of the Amazon States Language using a Pass state", "StartAt": "HelloWorld", "States": { "HelloWorld": { "Type": "Pass", "Result": "Hello World!", "End": true } } }

Cuando se inicia una ejecución de esta máquina de estado, el sistema comienza con el estado al que se hace referencia en el campo StartAt ("HelloWorld"). Si este estado tiene un campo "End": true, la ejecución se detiene y se devuelven los resultados. De lo contrario, el sistema busca un campo "Next": y continúa con ese estado "next". Este proceso se repite hasta que el sistema alcanza un estado terminal (un estado con "Type": "Succeed", "Type": "Fail" o "End": true) o se produce un error del sistema en tiempo de ejecución.

Las siguientes reglas se aplican a los estados de una máquina de estado:

  • Los estados pueden tener lugar en cualquier orden dentro del bloque delimitado; el orden en el que aparecen no afecta al orden en el que se ejecutan. El contenido de los estados determina este orden.

  • En una máquina de estado, solo puede haber un estado designado como start; esta designación se hace a través del valor del campo StartAt de la estructura principal. Este estado es uno de los que se ejecuta primero cuando se inicia la ejecución.

  • Los estados cuyo campo End tiene el valor true, se consideran estados end (o terminal). En función de la lógica de la máquina de estado (por ejemplo, si la máquina de estado tiene varias ramificaciones de ejecución), es posible que haya varios estados end.

  • Si la máquina de estado se compone de un solo estado, este podría ser tanto el estado start como el estado end.

Campos de estado comunes en los flujos de trabajo

Los siguientes campos son comunes a todos los elementos de estado.

Type (Obligatorio)

El tipo de estado.

Next

El nombre del siguiente estado que se ejecuta cuando finaliza el estado actual. Algunos tipos de estado, como Choice, permiten varios estados de transición.

Si el estado actual es el último estado de su flujo de trabajo o un estado terminal, como Estado de flujo de trabajo exitoso o Estado de flujo de trabajo fallido, no es necesario que especifique el campo Next.

End

Designa este estado como un estado terminal (termina la ejecución) si está establecido en true. Puede haber un número cualquiera de estados terminales por máquina de estado. Solo se puede utilizar Next o End en un estado. Algunos tipos de estado, como Choice, o estados terminales, como Estado de flujo de trabajo exitoso y Estado de flujo de trabajo fallido, no admiten ni utilizan el campo End.

Comment (opcional)

Almacena una descripción en lenguaje natural del estado.

InputPath (opcional)

Una ruta que selecciona una parte de la entrada del estado que se va a pasar a la tarea del estado para su procesamiento. Si se omite, tiene el valor de $, que designa toda la entrada. Para obtener más información, consulte Procesamiento de entrada y salida.

OutputPath (opcional)

Una ruta que selecciona una parte de la salida del estado que se va a pasar al estado siguiente. Si se omite, tiene el valor de $, que designa toda la salida. Para obtener más información, consulte Procesamiento de entrada y salida.