Procesamiento de entradas y salidas en Step Functions
Administración del estado con variables y JSONata
Step Functions ha agregado recientemente variables y JSONata para administrar el estado y transformar los datos.
Obtenga más información en la entrada del blog Simplifying developer experience with variables and JSONata in AWS Step Functions
Cuando una ejecución de Step Functions recibe una entrada JSON, pasa dichos datos al primer estado en el flujo de trabajo como entrada.
Con JSONata, puede recuperar la entrada de estado desde $states.input. Las ejecuciones de su máquina de estado también proporcionan esos datos de entrada iniciales en el Objeto Context (Contexto). Puede recuperar la entrada original de la máquina de estado en cualquier punto de su flujo de trabajo desde $states.context.Execution.Input.
Cuando los estados terminan, su salida está disponible para el siguiente estado de la máquina de estado. Las entradas del estado pasarán de forma predeterminada como salida de estado, a menos que modifique la salida del estado. Para los datos que pueda necesitar en pasos posteriores, considere la posibilidad de almacenarlos en variables. Para obtener más información, consulte Transmisión de datos entre estados con variables.
Recomendación de QueryLanguage
Para máquinas de estado nuevas, recomendamos el lenguaje de consulta de JSONata. En las máquinas de estado que no especifican un lenguaje de consulta, la máquina de estado utiliza JSONPath de forma predeterminada para garantizar la compatibilidad con versiones anteriores. Debe inscribirse para utilizar JSONata para sus máquinas de estado o estados individuales.
Procesamiento de entradas y salidas con JSONata
Con las expresiones de JSONata, puede seleccionar y transformar datos. En el campo Arguments, puede personalizar los datos que se envían a la acción. El resultado se puede transformar en una salida de estado personalizada en el campo Output. También puede almacenar datos en variables en el campo Assign. Para obtener más información, consulte Transformación de datos con JSONata.
En el siguiente diagrama se muestra cómo se traslada la información de JSON a través de un estado de tarea de JSONata.
Procesamiento de entradas y salidas con JSONPath
Administración del estado y transformación de los datos
Obtenga información sobre la Transmisión de datos entre estados con variables y la Transformación de datos con JSONata.
Para las máquinas de estado que utilizan JSONPath, los siguientes campos controlan el flujo de datos de un estado a otro: InputPath, Parameters, ResultSelector, ResultPath y OutputPath. Cada campo JSONPath puede manipular el objeto JSON a medida que se desplaza a través de cada estado del flujo de trabajo.
Los campos JSONPath pueden utilizar rutas para seleccionar partes del objeto JSON de la entrada o del resultado. Una ruta es una cadena, que empieza por $ e identifica nodos dentro de texto JSON. Las rutas de Step Functions utilizan la sintaxis JSONPath
En el siguiente diagrama se muestra cómo se traslada la información de JSON a través de un estado de tarea de JSONPath. InputPath selecciona las partes de la entrada JSON para pasarlas a la tarea del estado Task (por ejemplo, una función de AWS Lambda). Puede ajustar los datos que se envían a su acción en el campo Parameters. A continuación, con ResultSelector, puede seleccionar partes del resultado de la acción para transferirlas. ResultPath selecciona la combinación de entrada de estado y resultados de la tarea para pasarlos a la salida. OutputPath puede filtrar la salida JSON para limitar aún más la información que se pasa a la salida.
Temas
Acceso a los datos de ejecución desde el objeto Context en Step Functions
Manipulación de los parámetros en los flujos de trabajo de Step Functions
Ejemplo: Manipulación de datos de estado con rutas en flujos de trabajo de Step Functions
Especificación de la salida de estado mediante ResultPath en Step Functions