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 campoStartAt
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 valortrue
, se consideran estadosend
(oterminal
). 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 estadosend
. -
Si la máquina de estado se compone de un solo estado, este podría ser tanto el estado
start
como el estadoend
.
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 utilizarNext
oEnd
en un estado. Algunos tipos de estado, comoChoice
, o estados terminales, como Estado de flujo de trabajo exitoso y Estado de flujo de trabajo fallido, no admiten ni utilizan el campoEnd
. -
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.