を使用して TestState API Step Functions で状態をテストする - AWS Step Functions

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

を使用して TestState API Step Functions で状態をテストする

は、単一の状態の定義TestStateAPIを受け入れて実行します。ステートマシンを作成したり、既存のステートマシンを更新したりしなくても、ステートをテストできます。

を使用して TestState API、以下をテストできます。

状態をテストするには、Step Functionsコンソール 、、AWS Command Line Interface (AWS CLI)または を使用することもできますSDK。

は ロールをTestStateAPI引き受けます。このIAMロールには、ステートがアクセスするリソースに必要なアクセスIAM許可が含まれている必要があります。ステートに必要なアクセス許可については、「IAM を使用するための アクセス許可 TestState API」を参照してください。

の使用に関する考慮事項 TestState API

を使用するとAPI、一度にテストできる状態は TestState 1 つだけです。テストできるステートは次のとおりです。

を使用する際はTestStateAPI、以下の考慮事項に留意してください。

での検査レベルの使用 TestState API

を使用して状態をテストするにはTestStateAPI、その状態の定義を指定します。その後、テストは出力を返します。ステートごとに、テスト結果に表示したい詳細の量を指定できます。これらの情報は、テストしているステートに関する追加情報を提供します。例えば、InputPath または ResultPath ステート内で入出力データ処理フィルターを使用したことがある場合は、中間データ処理結果と最終データ処理結果を表示できます。

Step Functions には以下のレベルがあり、表示したい詳細を指定できます。

これらのレベルはすべて、status および nextState フィールドも返します。status は、ステート実行のステータスを示します。例えば、SUCCEEDEDFAILEDRETRIABLE、および CAUGHT_ERROR などです。nextState は、次に遷移するステートの名前を示します。定義に次のステートを定義していない場合、このフィールドは空の値を返します。

Step Functions コンソールおよび AWS CLI でこれらの検査レベルを使用してステートをテストする方法については、「ステートのテスト (コンソール)」および「AWS CLI を使用してステートをテストする」を参照してください。

INFO inspectionLevel

テストが成功すると、このレベルにはステート出力が表示されます。テストが失敗した場合、このレベルにはエラー出力が表示されます。デフォルトでは、レベルを指定INFOしない場合、 は検査レベルを Step Functionsに設定します。

次の図は、成功したテストのパスステートを示しています。この状態の検査レベルは に設定INFOされ、状態の出力が出力タブに表示されます。

テストに合格したINFOレベルの出力のスクリーンショット。

次の図は、検査レベルが に設定されているときにタスク状態で失敗したテストを示していますINFO[出力] タブには、エラー名とそのエラーの原因の詳細な説明を含むエラー出力が表示されます。

テストに失敗したINFOレベルの出力のスクリーンショット。

DEBUG inspectionLevel

テストが成功すると、このレベルにはステート出力と入出力データ処理の結果が表示されます。

テストが失敗した場合、このレベルにはエラー出力が表示されます。このレベルには、障害発生時点までの中間データ処理結果が表示されます。例えば、Lambda 関数を呼び出すタスクステートをテストしたとします。タスクステートに、InputPathパラメータStep Functions ワークフロー ResultPath で を使用して状態出力を指定する、および Step Functions ワークフロー OutputPath で を使用して状態出力をフィルタリングする フィルターを適用したとします。呼び出しが失敗したとします。この場合、DEBUG レベルにはフィルターの適用に基づくデータ処理結果が次の順序で表示されます。

  • input — 未加工のステート入力

  • afterInputPath — Step Functions が InputPath フィルターを適用した後の入力。

  • afterParameters — Step Functions が Parameters フィルターを適用した後の有効な入力。

このレベルで利用できる診断情報は、定義したサービス統合入出力データ処理フローに関連する問題のトラブルシューティングに役立ちます。

次の図は、成功したテストのパスステートを示しています。この状態の検査レベルは に設定されますDEBUG。以下の画像の [入出力処理] タブには、このステートに提供された入力に Parameters を適用した結果が表示されます。

テストに合格したDEBUGレベルの出力のスクリーンショット。

次の図は、検査レベルが に設定されているときにタスク状態で失敗したテストを示していますDEBUG。以下の画像の [入出力処理タブ] には、障害発生時点までのステートの入出力データ処理結果が表示されます。

テストに失敗したDEBUGレベルの出力のスクリーンショット。

TRACE inspectionLevel

Step Functions は、タスク をテストするTRACEレベルを提供します。 HTTP このレベルは、サードパーティーがAPI返すHTTPリクエストStep Functionsとレスポンスに関する情報を返します。レスポンスには、ヘッダーやリクエスト本文などの情報が含まれる場合があります。さらに、このレベルでの入出力データ処理のステート出力と結果も表示できます。

テストが失敗した場合、このレベルにはエラー出力が表示されます。

このレベルはHTTPタスクにのみ適用されます。 は、このレベルを他の状態タイプに使用するとエラーをStep Functionsスローします。

検査レベルを に設定するとTRACEEventBridge 接続 に含まれるシークレットを表示することもできます。これを行うには、 で revealSecretsパラメータを true TestState に設定する必要がありますAPI。さらに、 を呼び出すIAMユーザーに TestState APIstates:RevealSecretsアクションのアクセス許可があることを確認する必要があります。states:RevealSecrets アクセス許可を付与する IAM ポリシーの例については、「IAM を使用するための アクセス許可 TestState API」を参照してください。このアクセス許可がない場合、Step Functions はアクセス拒否エラーをスローします。

revealSecrets パラメータを に設定するとfalse、 Step Functions はHTTPリクエストおよびレスポンスデータ内のすべてのシークレットを省略します。

次の図は、成功したHTTPタスクのテストを示しています。この状態の検査レベルは に設定されますTRACE。次の図のHTTPリクエストとレスポンスタブは、サードパーティーのAPI呼び出しの結果を示しています。

テストに合格したTRACEレベルの出力のスクリーンショット。

IAM を使用するための アクセス許可 TestState API

を呼び出すIAMユーザーには、 states:TestStateおよび iam:PassRoleアクションを実行するためのアクセス許可TestStateAPIが必要です。さらに、 revealSecretsパラメータを に設定する場合はtrue、IAMユーザーに states:RevealSecretsアクションを実行するアクセス許可があることを確認する必要があります。このアクセス許可がない場合、Step Functions はアクセス拒否エラーをスローします。

また、IAM ステートがアクセスしているリソースに必要なアクセス許可が実行ロールに含まれていることも確認する必要があります。ステートが必要とするアクセス許可については、「実行ロールの管理」を参照してください。

次の IAM ポリシー例では、states:TestStateiam:PassRole、および states:RevealSecrets アクセス許可を設定します。

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

ステートのテスト (コンソール)

コンソールでステートをテストし、ステートの出力または入出力データの処理フローを確認できます。HTTP タスク では、raw HTTPリクエストとレスポンスをテストできます。

ステートをテストするには
  1. Step Functions コンソールを開きます。

  2. [ステートマシンの作成] を選択してステートマシンの作成を開始するか、既存のステートマシンを選択します。

  3. Workflow Studio の デザインモード で、テストするステートを選択します。

  4. Workflow Studio の Inspector パネル パネルで [ステートをテスト] を選択します。

  5. [ステートをテスト] ダイアログボックスで、次の操作を行います。

    1. [実行ロール] では、ステートをテストする実行ロールを選択します。テストするステートに必要な IAM アクセス許可があることを確認してください。

    2. (オプション) 選択した状態がテストに必要なJSON入力を入力します。

    3. [検査レベル] では、表示したい値に基づいて以下のオプションのいずれかを選択します。

      • INFO - テストが成功した場合、出力タブに状態出力を表示します。テストが失敗した場合、 はエラー出力INFOを表示します。これには、エラー名と、そのエラーの原因の詳細な説明が含まれます。デフォルトでは、レベルを選択しINFOない場合、 は検査レベルを Step Functionsに設定します。

      • DEBUG – テストが成功した場合の状態出力と入出力データ処理の結果を表示します。テストが失敗した場合、 はエラー出力DEBUGを表示します。これには、エラー名と、そのエラーの原因の詳細な説明が含まれます。

      • TRACE — raw HTTPリクエストとレスポンスを表示し、ヘッダー、クエリパラメータ、およびその他の API固有の詳細を検証するのに役立ちます。このオプションはタスク HTTP でのみ使用できます。

        オプションで [シークレットを公開] を選択することもできます。この設定ではTRACE、 と組み合わせて、 APIキーなど、EventBridge接続が挿入する機密データを確認できます。コンソールへのアクセスに使用する IAM ユーザー ID には、states:RevealSecrets アクションを実行するアクセス許可が必要です。このアクセス許可がない場合、Step Functions はテストの開始時にアクセス拒否エラーをスローします。states:RevealSecrets アクセス許可を付与する IAM ポリシーの例については、「IAM を使用するための アクセス許可 TestState API」を参照してください。

    4. [テストを開始] を選択します。

AWS CLI を使用してステートをテストする

TestState API で を使用して、サポートされている状態をテストできますAWS CLI。これにより、状態の定義がAPI受け入れられ、実行されます。

ステートごとに、テスト結果に表示したい詳細の量を指定できます。これらの詳細は、入力および出力データ処理結果、HTTPリクエストおよびレスポンス情報など、状態の実行に関する追加情報を提供します。次の例は、 に指定できるさまざまな検査レベルを示しています TestState API。必ず を置き換えてください。italicized リソース固有の情報を含む テキスト。

このセクションには、Step Functions が AWS CLI で提供するさまざまな検査レベルの使用方法を示す次の例が含まれています。

例 1: INFO inspectionLevel を使用して選択状態をテストする

INFO inspectionLevel で を使用して状態をテストするには AWS CLI、次の例に示すように test-state コマンドを実行します。

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}'

この例では、Choice ステートを使用して、指定した数値入力に基づいてステートの実行パスを決定します。レベルを設定しない場合、 Step Functions はデフォルトで inspectionLevelINFO に設定します。

Step Functions は次の出力を返します。

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

例 2: DEBUG inspectionLevel を使用して Pass 状態の入出力データ処理をデバッグする

DEBUG inspectionLevel で を使用して状態をテストするには AWS CLI、次の例に示すように test-state コマンドを実行します。

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

この例では、 ワークフロー状態を渡す状態を使用して、入出力データ処理Step Functionsフィルターを使用して入力JSONデータをフィルタリングおよび操作する方法を示します。この例では、InputPathパラメータStep Functions ワークフロー ResultPath で を使用して状態出力を指定する、および Step Functions ワークフロー OutputPath で を使用して状態出力をフィルタリングする フィルターを使用しています。

Step Functions は次の出力を返します。

{ "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" }

例 3: TRACE inspectionLevel と revealSecrets を使用してサードパーティーに送信されたHTTPリクエストを検査する API

revealSecretsパラメータTRACEinspectionLevelとともに を使用してHTTPタスクをテストするには AWS CLI、次の例に示すように test-state コマンドを実行します。

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

この例では、HTTPタスクが指定されたサードパーティーの API、 を呼び出すかどうかをテストしますhttps://httpbin.org/。また、API通話のHTTPリクエストとレスポンスのデータも表示されます。

{ "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" }

例 4: jq ユーティリティを使用して、 が返す TestState APIレスポンスをフィルタリングして出力する

は TestState API、レスポンスでエスケープされた文字列としてJSONデータを返します。次のAWS CLI例では、例 3 を拡張し、 jqユーティリティを使用して、 が返すHTTPレスポンスを人間が読める形式でフィルタリングして出力します TestState API。jq とそのインストール手順については、「」の「jq」を参照してください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'

次の例は、人間が読める形式で返される出力を示しています。

{ "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" }

入力データと出力データフローのテストとデバッグ

TestState API は、ワークフローを通過するデータのテストとデバッグに役立ちます。このセクションでは、いくつかの重要な概念と、この目的のために TestState を使用する方法について説明します。

主要なコンセプト

ではStep Functions、ステートマシンの状態を通過するJSONデータをフィルタリングおよび操作するプロセスは、入出力処理 と呼ばれます。この仕組みについては、「Step Functions での入力と出力の処理」を参照してください。

Amazon ステートメント言語 (ASL) (タスク、並列、マップ、合格、待機、選択、成功、失敗) のすべての状態タイプは、それらを通過するJSONデータをフィルタリングおよび操作するための一連の共通フィールドを共有します。これらのフィールドは、InputPathパラメータResultSelectorStep Functions ワークフロー ResultPath で を使用して状態出力を指定する、および Step Functions ワークフロー OutputPath で を使用して状態出力をフィルタリングする です。各フィールドのサポートはステートによって異なります。実行時には、Step Functions は各フィールドを特定の順序で適用します。以下の図は、これらのフィールドがタスクステート内のデータに適用される順序を示しています。

フィルターの順序: InputPath、パラメータ ResultSelector、 ResultPath、および OutputPath。

以下のリストは、図に示されている入力処理フィールドと出力処理フィールドの適用順序を示しています。

  1. 状態入力は、以前の状態から現在の状態に渡されるJSONデータです。

  2. InputPath は未加工のステート入力の一部をフィルタリングします。

  3. パラメータタスクに渡す値のセットを設定します。

  4. タスクは作業を実行し、結果を返します。

  5. ResultSelector はタスク結果から除外する値のセットを選択します。

  6. Step Functions ワークフロー ResultPath で を使用して状態出力を指定する は結果を未加工のステート入力と結合するか、結果をそれに置き換えます。

  7. Step Functions ワークフロー OutputPath で を使用して状態出力をフィルタリングする は出力の一部をフィルタリングして次のステートに渡します。

  8. 状態出力は、現在の状態から次の状態に渡されるJSONデータです。

これらの入力処理フィールドと出力処理フィールドはオプションです。ステート定義にこれらのフィールドをまったく使用しない場合、タスクは未加工のステート入力を消費し、タスクの結果をステート出力として返します。

TestState を使用して入出力処理を検査する

を呼び出して inspectionLevelパラメータを に設定するTestStateAPIとDEBUG、APIレスポンスには というオブジェクトが含まれますinspectionData。このオブジェクトには、実行時にステート内でデータがどのようにフィルタリングまたは操作されたかを調べるのに役立つフィールドが含まれています。次の例は、inspectionData オブジェクトのタスクステートを示しています。

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

この例では、after プレフィックスを含む各フィールドには、特定のフィールドが適用された後のデータが表示されます。例えば、afterInputPathInputPath フィールドを適用して未加工のステート入力をフィルタリングしたときの効果を示しています。次の図は、各ASL定義フィールドを inspectionData オブジェクト内の対応するフィールドにマッピングします。

ASL フィールドの へのマッピングを示す図inspectionData。

を使用して入出力処理を TestState APIデバッグする例については、以下を参照してください。