Configurar la salida mediante los filtros ResultSelector, ResultPath y OutputPath - 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.

Configurar la salida mediante los filtros ResultSelector, ResultPath y OutputPath

Cuando se invoca la función de Lambda de check-address en la máquina de estado WorkflowInputOutput, la función devuelve una carga útil de salida después de realizar la verificación de dirección. En la página de Detalles de la ejecución, elija el paso Verificar dirección y vea la carga útil de salida dentro de Resultado de la tarea en el panel Detalles del paso.

{ "ExecutedVersion": "$LATEST", "Payload": { "statusCode": 200, "body": "{\"approved\":true,\"message\":\"identity validation passed\"}" }, "SdkHttpMetadata": { "AllHttpHeaders": { "X-Amz-Executed-Version": [ "$LATEST" ], ... ... "StatusCode": 200 }

Utilizar ResultSelector

Si necesita proporcionar ahora el resultado de las comprobaciones de identidad y dirección en los siguientes estados del flujo de trabajo, puede seleccionar el nodo Payload.body en el JSON de salida y utilizar el filtro de función intrínseca StringToJson en el filtro ResultSelector para formatear los datos si es necesario.

ResultSelector selecciona lo que se necesita del resultado de la tarea. En el siguiente ejemplo, ResultSelector toma la cadena de $.Payload.body y aplica la función intrínseca States.StringToJson para convertir la cadena a JSON y coloca el JSON resultante dentro del nodo de identidad.

"ResultSelector": { "identity.$": "States.StringToJson($.Payload.body)" }

De este modo se crean los siguientes datos JSON.

{ "identity": { "approved": true, "message": "Identity validation passed" } }

Mientras trabaja con estos filtros de entrada y salida, es posible que también se produzcan errores de tiempo de ejecución debido a la especificación de expresiones de ruta JSON no válidas. Para obtener más información, consulte.

Utilizar ResultPath

Puede especificar una ubicación en la carga útil de entrada inicial para guardar el resultado del procesamiento de tareas de un estado mediante el campo ResultPath. Si no especifica ResultPath, su valor predeterminado es $, lo que hace que la carga útil de entrada inicial se sustituya por el resultado sin procesar de la tarea. Si especifica ResultPath como null, el resultado sin procesar se descarta y la carga útil de entrada inicial pasa a ser la salida efectiva.

Si aplica el campo ResultPath a los datos JSON creados con el campo ResultSelector, el resultado de la tarea se añade dentro del nodo de resultados de la carga útil de entrada, como se muestra en el siguiente ejemplo:

{ "data": { "firstname": "Jane", "lastname": "Doe", "identity": { "email": "jdoe@example.com", "ssn": "123-45-6789" }, "address": { "street": "123 Main St", "city": "Columbus", "state": "OH", "zip": "43219" }, "results": { "identity": { "approved": true } } }

Utilizar OutputPath

Puede seleccionar una parte de la salida de estado después de la aplicación de ResultPath para pasar al siguiente estado. Esto le permite filtrar la información no deseada y pasar solo la parte de JSON que le interese.

En el siguiente ejemplo, el campo OutputPath guarda la salida de estado dentro del nodo de resultados: "OutputPath": "$.results". De este modo, el resultado final del estado, que puede pasar al siguiente estado, es el siguiente:

{ "addressResult": { "approved": true, "message": "address validation passed" }, "identityResult": { "approved": true, "message": "identity validation passed" } }

Utilizar las características de la consola para visualizar los flujos de datos de entrada y salida

Puede visualizar el flujo de datos de entrada y salida entre los estados de los flujos de trabajo mediante el simulador de flujos de datos de la consola de Step Functions o la opción de vista avanzada de la página Detalles de ejecución.