Especificación de la salida de estado mediante ResultPath 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.

Especificación de la salida de estado mediante ResultPath Step Functions

Administrar el estado y transformar los datos

Esta página hace referencia aJSONPath. Step Functions agregó recientemente variables y JSONata para administrar el estado y transformar los datos.

Obtenga información sobre cómo pasar datos con variables y cómo transformar datos con JSONata.

La salida de un estado puede ser una copia de su entrada, el resultado que produce (por ejemplo, la salida de una función de Lambda del estado Task) o una combinación de su entrada y del resultado. Use ResultPath para controlar qué combinación de estos se pasa a la salida del estado.

Los siguientes tipos de estado pueden generar un resultado y pueden incluir ResultPath:

Use ResultPath para combinar un resultado de tarea con una entrada de tarea o para seleccionar uno de estos. La ruta que se proporciona a ResultPath controla la información que se pasa a la salida.

nota

ResultPathse limita a utilizar rutas de referencia, lo que limita el alcance, por lo que la ruta debe identificar solo un nodoJSON. Consulte Rutas de referencia en Amazon States Language.

Se usa ResultPath para reemplazar la entrada con el resultado de la tarea

Si no especifica aResultPath, el comportamiento predeterminado es el mismo que"ResultPath": "$". El estado reemplazará toda la entrada de estado por el resultado de la tarea.

# State Input { "comment": "This is a test", "details": "Default example", "who" : "Step Functions" } # Path "ResultPath": "$" # Task result "Hello, Step Functions!" # State Output "Hello, Step Functions!"
nota

ResultPath se utiliza para incluir contenido a partir del resultado con la entrada, antes de pasarlo a la salida. Sin embargo, si ResultPath no se especifica, la acción predeterminada es reemplazar toda la entrada.

Descarte el resultado y conserve la entrada original

Si lo configura ResultPathnull, el estado pasará la entrada original a la salida. La carga útil de entrada del estado se copiará directamente a la salida, sin tener en cuenta el resultado de la tarea.

# State Input { "comment": "This is a test", "details": "Default example", "who" : "Step Functions" } # Path "ResultPath": null # Task result "Hello, Step Functions!" # State Output { "comment": "This is a test", "details": "Default example", "who" : "Step Functions" }

Se utiliza ResultPath para incluir el resultado con la entrada

Si especifica una ruta para ResultPath, la salida de estado combinará la entrada de estado y el resultado de la tarea:

# State Input { "comment": "This is a test", "details": "Default example", "who" : "Step Functions" } # Path "ResultPath": "$.taskresult" # Task result "Hello, Step Functions!" # State Output { "comment": "This is a test", "details": "Default example", "who" : "Step Functions", "taskresult" : "Hello, Step Functions!" }

También puede insertar el resultado en un nodo secundario de la entrada. Establezca ResultPath como se indica a continuación.

"ResultPath": "$.strings.lambdaresult"

Dada la siguiente entrada:

{ "comment": "An input comment.", "strings": { "string1": "foo", "string2": "bar", "string3": "baz" }, "who": "AWS Step Functions" }

El resultado de la tarea se insertaría como un elemento strings secundario del nodo en la entrada.

{ "comment": "An input comment.", "strings": { "string1": "foo", "string2": "bar", "string3": "baz", "lambdaresult": "Hello, Step Functions!" }, "who": "AWS Step Functions" }

La salida del estado ahora incluye la entrada JSON original y el resultado es un nodo secundario.

Se utiliza ResultPath para actualizar un nodo de la entrada con el resultado

Si especificas un nodo existente para ResultPath, el resultado de la tarea sustituirá a ese nodo existente:

# State Input { "comment": "This is a test", "details": "Default example", "who" : "Step Functions" } # Path "ResultPath": "$.comment" # Task result "Hello, Step Functions!" # State Output { "comment": "Hello, Step Functions!", "details": "Default example", "who" : "Step Functions" }

Se utiliza ResultPath para incluir tanto el error como la entrada en un Catch

En algunos casos, es posible que desee conservar la entrada original con el error. Utilice ResultPath en un Catch para incluir el error con la entrada original, en lugar de sustituirla.

"Catch": [{ "ErrorEquals": ["States.ALL"], "Next": "NextTask", "ResultPath": "$.error" }]

Si la instrucción Catch anterior detecta un error, incluye el resultado en un nodo error dentro de la entrada de estado. Por ejemplo, con la siguiente entrada:

{"foo": "bar"}

La salida de estado al detectar un error es la siguiente.

{ "foo": "bar", "error": { "Error": "Error here" } }

Para obtener más información sobre el control de errores, consulte lo siguiente: