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

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

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

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

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

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

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

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

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

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

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

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

Step Functions には、表示する詳細を指定するための次のレベルが用意されています。

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

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

INFO inspectionLevel

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

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

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

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

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

DEBUG inspectionLevel

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

テストが失敗した場合、このレベルにはエラー出力が表示されます。このレベルには、障害発生時点までの中間データ処理結果が表示されます。例えば、 を呼び出すタスク状態をテストしたとします。Lambda function。タスクステートに、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 は、HTTPタスク をテストするTRACEレベルを提供します。このレベルは、 HTTPStep Functions は、サードパーティーがAPI返す とレスポンスを行います。レスポンスには、ヘッダーやリクエスト本文などの情報が含まれる場合があります。さらに、このレベルでの入出力データ処理のステート出力と結果も表示できます。

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

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

検査レベルを に設定するとTRACEEventBridge 接続 に含まれるシークレットを表示することもできます。これを行うには、 truerevealSecretsパラメータを TestState に設定する必要がありますAPI。さらに、IAM を TestState API呼び出すユーザーには、 states:RevealSecretsアクションに対するアクセス許可があります。の例 IAM states:RevealSecrets アクセス許可を設定するポリシーについては、「」を参照してください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:TestState、、iam:PassRole、および アクセスstates:RevealSecrets許可を設定します。

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

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

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

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

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

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

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

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

    1. [実行ロール] では、ステートをテストする実行ロールを選択します。必要な IAM テストする状態のアクセス許可

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

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

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

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

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

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

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 と を使用して、サードパーティーに送信されたHTTPリクエストを revealSecrets 検査する 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 example は例 3 を拡張し、 jqユーティリティを使用して、 が TestState API返すHTTPレスポンスを人間が読み取れる形式でフィルタリングして印刷します。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 この目的のために を使用する方法について説明します。

主要なコンセプト

In 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デバッグする例については、以下を参照してください。