Uso TestState API para probar un estado en 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.

Uso TestState API para probar un estado en Step Functions

TestStateAPIAcepta la definición de un solo estado y lo ejecuta. Puede probar un estado sin crear una máquina de estado ni actualizar una máquina de estado existente.

Con el TestState API, puede probar lo siguiente:

Para probar un estado, también puede usar el Step Functions consola, AWS Command Line Interface (AWS CLI), o elSDK.

TestStateAPIAsume una IAM función que debe contener lo requerido IAM permisos para los recursos a los que accede su estado. Para obtener información acerca de los permisos que podría necesitar un estado, consulte IAM permisos de uso TestState API.

Consideraciones sobre el uso del TestState API

Con el TestStateAPI, solo puede probar un estado a la vez. Los estados que puede probar son los siguientes:

Al utilizar el TestStateAPI, tenga en cuenta las siguientes consideraciones.

Uso de los niveles de inspección en TestState API

Para probar un estado utilizando el TestStateAPI, debe proporcionar la definición de ese estado. A continuación, la prueba devuelve un resultado. Para cada estado, puede especificar la cantidad de detalles que desea ver en los resultados de la prueba. Estos detalles proporcionan información adicional acerca del estado que está probando. Por ejemplo, si ha utilizado filtros de procesamiento de datos de entrada y salida, como InputPath o ResultPath en un estado, puede ver los resultados del procesamiento de datos intermedio y final.

Step Functions proporciona los siguientes niveles para especificar los detalles que desea ver:

Todos estos niveles también devuelven los campos status y nextState. status indica el estado de la ejecución de estado. Por ejemplo, SUCCEEDED, FAILED, RETRIABLE y CAUGHT_ERROR. nextState indica el nombre del siguiente estado al que se realizará la transición. Si no ha definido un estado siguiente en la definición, este campo devuelve un valor vacío.

Para obtener información sobre cómo probar un estado mediante estos niveles de inspección en el Step Functions consola y AWS CLI, ver Probar un estado (consola) yProbar un estado usando AWS CLI.

INFO inspectionLevel

Si la prueba se realiza correctamente, este nivel muestra la salida de estado. Si la prueba falla, este nivel muestra la salida de error. De forma predeterminada, Step Functions establece el nivel de inspección en INFOsi no se especifica ningún nivel.

En la siguiente imagen se muestra una prueba para un estado Aprobado que se ha realizado correctamente. El nivel de inspección de este estado está establecido en INFOy el resultado del estado aparece en la pestaña Salida.

Captura de pantalla del INFO nivel de salida correspondiente a una prueba superada.

La siguiente imagen muestra una prueba que falló para un estado de tarea cuando el nivel de inspección está establecido en INFO. La pestaña Salida muestra la salida de error, que incluye el nombre del error y una explicación detallada de la causa del error.

Captura de pantalla del INFO nivel de salida de una prueba fallida.

DEBUG inspectionLevel

Si la prueba se realiza correctamente, este nivel muestra la salida de estado y el resultado del procesamiento de datos de entrada y salida.

Si la prueba falla, este nivel muestra la salida de error. Este nivel muestra los resultados intermedios del procesamiento de datos hasta el punto de error. Por ejemplo, supongamos que probaste un estado de tarea que invoca un Lambda función. Supongamos que había aplicado los filtros InputPath, Parámetros, Especificar la salida de estado mediante los flujos ResultPath de trabajo de Step Functions y Filtrar el estado de salida mediante flujos OutputPath de trabajo de Step Functions al estado Tarea. Supongamos que la invocación ha producido error. En este caso, el nivel DEBUG muestra los resultados del procesamiento de datos en función de la aplicación de los filtros en el siguiente orden:

  • input: entrada de estado sin procesar

  • afterInputPath— Introduce después Step Functions aplica el InputPath filtro.

  • afterParameters— La entrada efectiva después Step Functions aplica el Parameters filtro.

La información de diagnóstico disponible en este nivel puede ayudar a solucionar problemas relacionados con un flujo de integración de servicios o de procesamiento de datos de entrada y salida que haya definido.

En la siguiente imagen se muestra una prueba para un estado Aprobado que se ha realizado correctamente. El nivel de inspección de este estado está establecido en. DEBUG La pestaña Procesamiento de entrada/salida de la imagen siguiente muestra el resultado de la aplicación de Parameters a la entrada proporcionada para este estado.

Captura de pantalla del DEBUG nivel de salida correspondiente a una prueba superada.

La siguiente imagen muestra una prueba que falló para un estado de tarea cuando el nivel de inspección está establecido en DEBUG. La pestaña Procesamiento de entrada/salida de la imagen siguiente muestra el resultado del procesamiento de los datos de entrada y salida del estado hasta el punto de error.

Captura de pantalla del DEBUG nivel de salida de una prueba fallida.

TRACE inspectionLevel

Step Functions proporciona el TRACEnivel para probar una HTTPtarea. Este nivel devuelve información sobre la HTTP solicitud que Step Functions hace y responde que API devuelve un tercero. La respuesta puede contener información, como los encabezados y el cuerpo de la solicitud. Además, puede ver la salida del estado y el resultado del procesamiento de datos de entrada y salida en este nivel.

Si la prueba falla, este nivel muestra la salida de error.

Este nivel solo es aplicable a la HTTP tarea. Step Functions arroja un error si se utiliza este nivel para otros tipos de estado.

Si establece el nivel de inspección en TRACE, también puede ver los secretos incluidos en la EventBridge conexión. Para ello, debe establecer el revealSecrets parámetro true en TestStateAPI. Además, debe asegurarse de que el IAM el usuario que llama al TestState API tiene permiso para realizar la states:RevealSecrets acción. Para ver un ejemplo de IAM política que establece el states:RevealSecrets permiso, consulteIAM permisos de uso TestState API. Sin este permiso, Step Functions arroja un error de acceso denegado.

Si establece el revealSecrets parámetro enfalse, Step Functions omite todos los secretos de los datos de HTTP solicitud y respuesta.

La siguiente imagen muestra una prueba para una HTTP tarea que se ha realizado correctamente. El nivel de inspección de este estado está establecido en. TRACE La pestaña de HTTPsolicitud y respuesta de la siguiente imagen muestra el resultado de la API llamada de un tercero.

Captura de pantalla del resultado a TRACE nivel de una prueba superada.

IAM permisos de uso TestState API

La IAM usuario que utiliza los permisos TestState API imprescindibles para realizar las iam:PassRole acciones states:TestState y. Además, si establece el revealSecretsparámetro entrue, debe asegurarse de que IAM el usuario tiene permisos para realizar la states:RevealSecrets acción. Sin este permiso, Step Functions arroja un error de acceso denegado.

También debe asegurarse de que su función de ejecución contenga lo necesario IAM permisos para los recursos a los que accede su estado. Para obtener información acerca de los permisos que podría necesitar un estado, consulte Administración de roles de ejecución.

Los siguientes ejemplos de IAM Un ejemplo de política establece los states:RevealSecrets permisos states:TestStateiam:PassRole, y.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:TestState", "states:RevealSecrets", "iam:PassRole" ], "Resource": "*" } ] }

Probar un estado (consola)

Puede probar un estado en la consola y comprobar la salida del estado o el flujo de procesamiento de datos de entrada y salida. Para una HTTPtarea, puedes probar la HTTP solicitud y la respuesta sin procesar.

Para probar un estado
  1. Abra la consola de Step Functions.

  2. Seleccione Crear máquina de estado para empezar a crear una máquina de estado o elija una máquina de estado existente.

  3. En el Modo Diseño de Workflow Studio, elija un estado que desea probar.

  4. Elija Probar estado en el panel de Panel de inspectores de Workflow Studio.

  5. En el cuadro de diálogo Probar estado, haga lo siguiente:

    1. En Rol de ejecución, elija un rol de ejecución para probar el estado. Asegúrese de tener lo necesario IAM permisos para el estado que desea probar.

    2. (Opcional) Proporcione JSON cualquier dato que el estado seleccionado necesite para la prueba.

    3. En Nivel de inspección, seleccione una de las siguientes opciones en función de los valores que desee ver:

      • INFO— Muestra la salida del estado en la pestaña Salida si la prueba se realiza correctamente. Si la prueba falla, INFOmuestra el resultado del error, que incluye el nombre del error y una explicación detallada de la causa del error. De forma predeterminada, Step Functions establece el nivel de inspección en INFOsi no selecciona ningún nivel.

      • DEBUG— Muestra el estado de salida y el resultado del procesamiento de los datos de entrada y salida si la prueba se realiza correctamente. Si la prueba falla, DEBUGmuestra el resultado del error, que incluye el nombre del error y una explicación detallada de la causa del error.

      • TRACE— Muestra la HTTP solicitud y la respuesta sin procesar, y es útil para verificar los encabezados, los parámetros de consulta y otros detalles API específicos. Esta opción solo está disponible para la tarea. HTTP

        Si lo desea, puede seleccionar Revelar secretos. En combinación con TRACE, esta configuración le permite ver los datos confidenciales que EventBridge insertos de conexión, como API llaves. La IAM la identidad de usuario que utilice para acceder a la consola debe tener permiso para realizar la states:RevealSecrets acción. Sin este permiso, Step Functions arroja un error de acceso denegado al iniciar la prueba. Para ver un ejemplo de IAM política que establece el states:RevealSecrets permiso, consulteIAM permisos de uso TestState API.

    4. Seleccione Iniciar prueba.

Probar un estado usando AWS CLI

Puede probar un estado compatible utilizando TestStateAPIel AWS CLI. APIAcepta la definición de estado y la ejecuta.

Para cada estado, puede especificar la cantidad de detalles que desea ver en los resultados de la prueba. Estos detalles proporcionan información adicional sobre la ejecución del estado, incluido el resultado del procesamiento de datos de entrada y salida y la información de HTTP solicitud y respuesta. Los siguientes ejemplos muestran los diferentes niveles de inspección que puede especificar para el TestState API. Recuerde sustituir el italicized envíe un mensaje de texto con la información específica de su recurso.

Esta sección contiene los siguientes ejemplos que describen cómo puede utilizar los diferentes niveles de inspección que Step Functions proporciona en el AWS CLI:

Ejemplo 1: Utilización INFO inspectionLevel para probar un estado de elección

Para probar un estado mediante el comando INFO inspectionLevelin the AWS CLI, ejecute el test-state comando como se muestra en el siguiente ejemplo.

aws stepfunctions test-state \ --definition '{"Type": "Choice", "Choices": [{"Variable": "$.number", "NumericEquals": 1, "Next": "Equals 1"}, {"Variable": "$.number", "NumericEquals": 2, "Next": "Equals 2"}], "Default": "No Match"}' \ --role-arn arn:aws:iam::123456789012:role/myRole \ --input '{"number": 2}'

En este ejemplo se utiliza un estado Elección para determinar la ruta de ejecución del estado en función de la entrada numérica que proporcione. De forma predeterminada, Step Functions establece el inspectionLevel valor en INFO si no estableces un nivel.

Step Functions devuelve el siguiente resultado.

{ "output": "{\"number\": 2}", "nextState": "Equals 2", "status": "SUCCEEDED" }

Ejemplo 2: Se utiliza DEBUG inspectionLevel para depurar el procesamiento de datos de entrada y salida en estado de paso

Para probar un estado mediante el comando DEBUG inspectionLevelin the AWS CLI, ejecute el test-state comando como se muestra en el siguiente ejemplo.

aws stepfunctions test-state \ --definition '{"Type": "Pass", "InputPath": "$.payload", "Parameters": {"data": 1}, "ResultPath": "$.result", "OutputPath": "$.result.data", "Next": "Another State"}' \ --role-arn arn:aws:iam::123456789012:role/myRole \ --input '{"payload": {"foo": "bar"}}' \ --inspection-level DEBUG

En este ejemplo se usa un Pase el estado del flujo de trabajo estado para mostrar cómo Step Functions filtra y manipula los JSON datos de entrada mediante los filtros de procesamiento de datos de entrada y salida. En este ejemplo se utilizan los siguientes filtros: InputPath, Parámetros, Especificar la salida de estado mediante los flujos ResultPath de trabajo de Step Functions y Filtrar el estado de salida mediante flujos OutputPath de trabajo de Step Functions.

Step Functions devuelve la siguiente salida.

{ "output": "1", "inspectionData": { "input": "{\"payload\": {\"foo\": \"bar\"}}", "afterInputPath": "{\"foo\":\"bar\"}", "afterParameters": "{\"data\":1}", "afterResultSelector": "{\"data\":1}", "afterResultPath": "{\"payload\":{\"foo\":\"bar\"},\"result\":{\"data\":1}}" }, "nextState": "Another State", "status": "SUCCEEDED" }

Ejemplo 3: Utilizar TRACE inspectionLevel e revealSecrets inspeccionar la HTTP solicitud enviada a un tercero API

Para probar una HTTPtarea con el parámetro TRACE inspectionLeveljunto con el revealSecretsparámetro del AWS CLI, ejecute el test-state comando como se muestra en el siguiente ejemplo.

aws stepfunctions test-state \ --definition '{"Type": "Task", "Resource": "arn:aws:states:::http:invoke", "Parameters": {"Method": "GET", "Authentication": {"ConnectionArn": "arn:aws:events:us-east-1:123456789012:connection/MyConnection/0000000-0000-0000-0000-000000000000"}, "ApiEndpoint": "https://httpbin.org/get", "Headers": {"definitionHeader": "h1"}, "RequestBody": {"message": "Hello from Step Functions!"}, "QueryParameters": {"queryParam": "q1"}}, "End": true}' \ --role-arn arn:aws:iam::123456789012:role/myRole \ --inspection-level TRACE \ --reveal-secrets

En este ejemplo se comprueba si la HTTP tarea llama al tercero especificadoAPI,https://httpbin.org/. También muestra los datos de HTTP solicitud y respuesta de la API llamada.

{ "output": "{\"Headers\":{\"date\":[\"Tue, 21 Nov 2023 00:06:17 GMT\"],\"access-control-allow-origin\":[\"*\"],\"content-length\":[\"620\"],\"server\":[\"gunicorn/19.9.0\"],\"access-control-allow-credentials\":[\"true\"],\"content-type\":[\"application/json\"]},\"ResponseBody\":{\"args\":{\"QueryParam1\":\"QueryParamValue1\",\"queryParam\":\"q1\"},\"headers\":{\"Authorization\":\"Basic XXXXXXXX\",\"Content-Type\":\"application/json; charset=UTF-8\",\"Customheader1\":\"CustomHeaderValue1\",\"Definitionheader\":\"h1\",\"Host\":\"httpbin.org\",\"Range\":\"bytes=0-262144\",\"Transfer-Encoding\":\"chunked\",\"User-Agent\":\"Amazon|StepFunctions|HttpInvoke|us-east-1\",\"X-Amzn-Trace-Id\":\"Root=1-0000000-0000-0000-0000-000000000000\"},\"origin\":\"12.34.567.891\",\"url\":\"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"},\"StatusCode\":200,\"StatusText\":\"OK\"}", "inspectionData": { "input": "{}", "afterInputPath": "{}", "afterParameters": "{\"Method\":\"GET\",\"Authentication\":{\"ConnectionArn\":\"arn:aws:events:us-east-1:123456789012:connection/foo/a59c10f0-a315-4c1f-be6a-559b9a0c6250\"},\"ApiEndpoint\":\"https://httpbin.org/get\",\"Headers\":{\"definitionHeader\":\"h1\"},\"RequestBody\":{\"message\":\"Hello from Step Functions!\"},\"QueryParameters\":{\"queryParam\":\"q1\"}}", "result": "{\"Headers\":{\"date\":[\"Tue, 21 Nov 2023 00:06:17 GMT\"],\"access-control-allow-origin\":[\"*\"],\"content-length\":[\"620\"],\"server\":[\"gunicorn/19.9.0\"],\"access-control-allow-credentials\":[\"true\"],\"content-type\":[\"application/json\"]},\"ResponseBody\":{\"args\":{\"QueryParam1\":\"QueryParamValue1\",\"queryParam\":\"q1\"},\"headers\":{\"Authorization\":\"Basic XXXXXXXX\",\"Content-Type\":\"application/json; charset=UTF-8\",\"Customheader1\":\"CustomHeaderValue1\",\"Definitionheader\":\"h1\",\"Host\":\"httpbin.org\",\"Range\":\"bytes=0-262144\",\"Transfer-Encoding\":\"chunked\",\"User-Agent\":\"Amazon|StepFunctions|HttpInvoke|us-east-1\",\"X-Amzn-Trace-Id\":\"Root=1-0000000-0000-0000-0000-000000000000\"},\"origin\":\"12.34.567.891\",\"url\":\"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"},\"StatusCode\":200,\"StatusText\":\"OK\"}", "afterResultSelector": "{\"Headers\":{\"date\":[\"Tue, 21 Nov 2023 00:06:17 GMT\"],\"access-control-allow-origin\":[\"*\"],\"content-length\":[\"620\"],\"server\":[\"gunicorn/19.9.0\"],\"access-control-allow-credentials\":[\"true\"],\"content-type\":[\"application/json\"]},\"ResponseBody\":{\"args\":{\"QueryParam1\":\"QueryParamValue1\",\"queryParam\":\"q1\"},\"headers\":{\"Authorization\":\"Basic XXXXXXXX\",\"Content-Type\":\"application/json; charset=UTF-8\",\"Customheader1\":\"CustomHeaderValue1\",\"Definitionheader\":\"h1\",\"Host\":\"httpbin.org\",\"Range\":\"bytes=0-262144\",\"Transfer-Encoding\":\"chunked\",\"User-Agent\":\"Amazon|StepFunctions|HttpInvoke|us-east-1\",\"X-Amzn-Trace-Id\":\"Root=1-0000000-0000-0000-0000-000000000000\"},\"origin\":\"12.34.567.891\",\"url\":\"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"},\"StatusCode\":200,\"StatusText\":\"OK\"}", "afterResultPath": "{\"Headers\":{\"date\":[\"Tue, 21 Nov 2023 00:06:17 GMT\"],\"access-control-allow-origin\":[\"*\"],\"content-length\":[\"620\"],\"server\":[\"gunicorn/19.9.0\"],\"access-control-allow-credentials\":[\"true\"],\"content-type\":[\"application/json\"]},\"ResponseBody\":{\"args\":{\"QueryParam1\":\"QueryParamValue1\",\"queryParam\":\"q1\"},\"headers\":{\"Authorization\":\"Basic XXXXXXXX\",\"Content-Type\":\"application/json; charset=UTF-8\",\"Customheader1\":\"CustomHeaderValue1\",\"Definitionheader\":\"h1\",\"Host\":\"httpbin.org\",\"Range\":\"bytes=0-262144\",\"Transfer-Encoding\":\"chunked\",\"User-Agent\":\"Amazon|StepFunctions|HttpInvoke|us-east-1\",\"X-Amzn-Trace-Id\":\"Root=1-0000000-0000-0000-0000-000000000000\"},\"origin\":\"12.34.567.891\",\"url\":\"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"},\"StatusCode\":200,\"StatusText\":\"OK\"}", "request": { "protocol": "https", "method": "GET", "url": "https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1", "headers": "[definitionHeader: h1, Authorization: Basic XXXXXXXX, CustomHeader1: CustomHeaderValue1, User-Agent: Amazon|StepFunctions|HttpInvoke|us-east-1, Range: bytes=0-262144]", "body": "{\"message\":\"Hello from Step Functions!\",\"BodyKey1\":\"BodyValue1\"}" }, "response": { "protocol": "https", "statusCode": "200", "statusMessage": "OK", "headers": "[date: Tue, 21 Nov 2023 00:06:17 GMT, content-type: application/json, content-length: 620, server: gunicorn/19.9.0, access-control-allow-origin: *, access-control-allow-credentials: true]", "body": "{\n \"args\": {\n \"QueryParam1\": \"QueryParamValue1\", \n \"queryParam\": \"q1\"\n }, \n \"headers\": {\n \"Authorization\": \"Basic XXXXXXXX\", \n \"Content-Type\": \"application/json; charset=UTF-8\", \n \"Customheader1\": \"CustomHeaderValue1\", \n \"Definitionheader\": \"h1\", \n \"Host\": \"httpbin.org\", \n \"Range\": \"bytes=0-262144\", \n \"Transfer-Encoding\": \"chunked\", \n \"User-Agent\": \"Amazon|StepFunctions|HttpInvoke|us-east-1\", \n \"X-Amzn-Trace-Id\": \"Root=1-0000000-0000-0000-0000-000000000000\"\n }, \n \"origin\": \"12.34.567.891\", \n \"url\": \"https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1\"\n}\n" } }, "status": "SUCCEEDED" }

Ejemplo 4: Uso de la utilidad jq para filtrar e imprimir la respuesta que se devuelve TestState API

TestState APIDevuelve los JSON datos como cadenas de escape en su respuesta. Los siguientes ejemplos de AWS CLI El ejemplo amplía el ejemplo 3 y utiliza la jq utilidad para filtrar e imprimir la HTTP respuesta que TestState API devuelve en un formato legible para las personas. Para obtener información jq y sus instrucciones de instalación, consulte jq on. GitHub

aws stepfunctions test-state \ --definition '{"Type": "Task", "Resource": "arn:aws:states:::http:invoke", "Parameters": {"Method": "GET", "Authentication": {"ConnectionArn": "arn:aws:events:us-east-1:123456789012:connection/MyConnection/0000000-0000-0000-0000-000000000000"}, "ApiEndpoint": "https://httpbin.org/get", "Headers": {"definitionHeader": "h1"}, "RequestBody": {"message": "Hello from Step Functions!"}, "QueryParameters": {"queryParam": "q1"}}, "End": true}' \ --role-arn arn:aws:iam::123456789012:role/myRole \ --inspection-level TRACE \ --reveal-secrets \ | jq '.inspectionData.response.body | fromjson'

En el siguiente ejemplo se muestra la salida devuelta en un formato legible para las personas.

{ "args": { "QueryParam1": "QueryParamValue1", "queryParam": "q1" }, "headers": { "Authorization": "Basic XXXXXXXX", "Content-Type": "application/json; charset=UTF-8", "Customheader1": "CustomHeaderValue1", "Definitionheader": "h1", "Host": "httpbin.org", "Range": "bytes=0-262144", "Transfer-Encoding": "chunked", "User-Agent": "Amazon|StepFunctions|HttpInvoke|us-east-1", "X-Amzn-Trace-Id": "Root=1-0000000-0000-0000-0000-000000000000" }, "origin": "12.34.567.891", "url": "https://httpbin.org/get?queryParam=q1&QueryParam1=QueryParamValue1" }

Prueba y depuración del flujo de datos de entrada y de salida

TestStateAPIEs útil para probar y depurar los datos que fluyen a lo largo del flujo de trabajo. En esta sección se proporcionan algunos conceptos clave y se explica cómo utilizarlos TestState para este fin.

Conceptos clave

En Step Functions, el proceso de filtrar y manipular JSON los datos a medida que pasan por los estados de la máquina de estados se denomina procesamiento de entrada y salida. Para obtener información sobre cómo funciona, consulte Procesamiento de entradas y salidas en Step Functions.

Todos los tipos de estado de Amazon States Language (ASL) (Task, Parallel, Map, Pass, Wait, Choice, Succeed y Fail) comparten un conjunto de campos comunes para filtrar y manipular los JSON datos que pasan por ellos. Estos campos son: InputPath, Parámetros, ResultSelector, Especificar la salida de estado mediante los flujos ResultPath de trabajo de Step Functions y Filtrar el estado de salida mediante flujos OutputPath de trabajo de Step Functions. La compatibilidad de cada campo varía según el estado. En tiempo de ejecución, Step Functions aplica cada campo en un orden específico. El siguiente diagrama muestra el orden en el que se aplican estos campos a los datos en un estado Tarea:

Orden de los filtros: InputPath, Parámetros ResultSelector, ResultPath, y OutputPath.

La siguiente lista describe el orden de aplicación de los campos de procesamiento de entrada y salida que se muestran en el diagrama.

  1. La entrada de estado son los JSON datos que se pasan al estado actual desde un estado anterior.

  2. InputPath filtra una parte de la entrada de estado sin procesar.

  3. Parámetros configura el conjunto de valores que se van a pasar a la Tarea.

  4. La tarea realiza un trabajo y devuelve un resultado.

  5. ResultSelector selecciona un conjunto de valores para excluirlos del resultado de la tarea.

  6. Especificar la salida de estado mediante los flujos ResultPath de trabajo de Step Functions combina el resultado con la entrada de estado sin procesar o reemplaza el resultado por ella.

  7. Filtrar el estado de salida mediante flujos OutputPath de trabajo de Step Functions filtra una parte de la salida para pasarla al siguiente estado.

  8. La salida de estado son los JSON datos que se pasan del estado actual al estado siguiente.

Estos campos de procesamiento de entrada y de salida son opcionales. Si no utiliza ninguno de estos campos en la definición de estado, la tarea consumirá la entrada de estado sin procesar y devolverá el resultado de la tarea como salida de estado.

Se utiliza TestState para inspeccionar el procesamiento de entrada y salida

Cuando llamas al parámetro TestState API y estableces el inspectionLevel parámetro enDEBUG, la API respuesta incluye un objeto llamadoinspectionData. Este objeto contiene campos que ayudan a inspeccionar cómo se filtraron o manipularon los datos en el estado cuando se ejecutaron. En el ejemplo siguiente se muestra el objeto inspectionData para un estado Tarea.

"inspectionData": { "input": string, "afterInputPath": string, "afterParameters": string, "result": string, "afterResultSelector": string, "afterResultPath": string, "output": string }

En este ejemplo, cada campo que contiene el prefijo after muestra los datos después de aplicar un campo concreto. Por ejemplo, afterInputPath muestra el efecto de aplicar el campo InputPath para filtrar la entrada de estado sin procesar. El siguiente diagrama asigna cada campo de ASLdefinición a su campo correspondiente del inspectionData objeto:

Diagrama que muestra la asignación de ASL campos ainspectionData.

Para ver ejemplos del uso de TestState API para depurar el procesamiento de entrada y salida, consulte lo siguiente: