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.
Administrar el estado y transformar los datos
Obtenga información sobre cómo pasar datos entre estados con variables y cómo transformar datos con JSONata.
Las máquinas de estado se definen utilizando texto JSON que representa una estructura que contiene los siguientes campos.
-
Comment
(opcional) -
Descripción en lenguaje natural de la máquina de estado.
-
QueryLanguage
(Opcional; si se omite, el valor predeterminado es)JSONPath
-
-
El nombre del lenguaje de consulta utilizado por la máquina de estados. Los valores permitidos son
JSONPath
yJSONata
. -
Si no se proporciona para la máquina de estados, el valor predeterminado para cada estado es JSONPath.
-
Si el idioma de consulta de la máquina de estados de nivel superior es
JSONPath
, los estados individuales pueden anular el idioma de consulta QueryLanguage configurándolo en.JSONata
Con este enfoque, puede convertir de forma incremental una máquina de estados JSONPath a JSONata un estado a la vez. -
Nota: No se puede revertir una máquina de estados JSONata basada en el nivel superior a una combinación de JSONata estados y. JSONPath
-
-
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.
QueryLanguage
(Opcional; si se omite, el valor predeterminado es)JSONPath
-
-
El nombre del idioma de consulta utilizado por el estado. Los valores permitidos son
JSONPath
yJSONata
. -
Cuando el idioma de consulta de la máquina de estados de nivel superior es
JSONPath
, los estados individuales pueden anular el idioma de consulta QueryLanguage configurándolo en.JSONata
Con este enfoque, puede convertir de forma incremental una máquina de estados JSONPath a JSONata un estado a la vez.
-
-
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 Succeed de un flujo de trabajo o Estado de flujo de trabajo con error, 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 Succeed de un flujo de trabajo y Estado de flujo de trabajo con error, no admiten ni utilizan el campoEnd
. -
Comment
(opcional) -
Almacena una descripción en lenguaje natural del estado.
-
Assign
(opcional) -
Se utiliza para almacenar variables. El
Assign
campo acepta un objeto JSON con pares clave/valor que definen los nombres de las variables y sus valores asignados. Cualquier valor de cadena, incluidos los que estén dentro de objetos o matrices, se evaluará como JSONata si estuviera rodeado de caracteres{% %}
Para obtener más información, consulte Pasar datos entre estados con variables.
-
Output
(Opcional, JSONata únicamente) -
Se utiliza para especificar y transformar la salida del estado. Cuando se especifica, el valor anula el estado de salida predeterminado.
El campo de salida acepta cualquier valor JSON (objeto, matriz, cadena, número, booleano, nulo). Cualquier valor de cadena, incluidos los que estén dentro de objetos o matrices, se evaluará como JSONata si estuviera rodeado por un {%%} caracteres.
La salida también acepta una JSONata expresión directamente, por ejemplo: «Output»: «{% jsonata expression%}»
Para obtener más información, consulte Procesamiento de entrada y salida.
-
InputPath
(Opcional, únicamente JSONPath ) -
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, JSONPath únicamente) -
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.