翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
を使用して TestState API Step Functions で状態をテストする
は単一の状態の定義TestStateAPIを受け入れて実行します。ステートマシンを作成したり、既存のステートマシンを更新したりしなくても、ステートをテストできます。
を使用して TestState API、以下をテストできます。
-
ステートの入出力処理データフロー。
-
他の AWS のサービス リクエストやレスポンスとAWS のサービス の統合
-
HTTP タスクリクエストとレスポンス
状態をテストするには、 Step Functions コンソール 、 AWS Command Line Interface (AWS CLI)、または SDK。
は、必要な を含む必要があるIAMロールをTestState
API引き受けます。IAM ステートがアクセスするリソースのアクセス許可。ステートに必要なアクセス許可については、「IAM を使用するためのアクセス許可 TestState API」を参照してください。
トピック
の使用に関する考慮事項 TestState API
を使用するとAPI、一度にテストできる状態は 1 TestState つだけです。テストできるステートは次のとおりです。
を使用する際はTestState
API、以下の考慮事項に注意してください。
-
TestState API には、以下のサポートは含まれません。
-
以下のリソースタイプを使用する タスクワークフローの状態 ステート:
-
.sync
または.waitForTaskToken
のサービス統合パターン
-
並列ワークフローの状態 ステート
-
マップワークフローの状態 ステート
-
-
テストは最大 5 分間実行できます。テストがこの期間を超えると、
States.Timeout
エラーで失敗します。
での検査レベルの使用 TestState API
を使用して状態をテストするにはTestStateAPI、その状態の定義を指定します。その後、テストは出力を返します。ステートごとに、テスト結果に表示したい詳細の量を指定できます。これらの情報は、テストしているステートに関する追加情報を提供します。例えば、InputPath または ResultPath ステート内で入出力データ処理フィルターを使用したことがある場合は、中間データ処理結果と最終データ処理結果を表示できます。
Step Functions には、表示する詳細を指定するための次のレベルが用意されています。
これらのレベルはすべて、status
および nextState
フィールドも返します。status
は、ステート実行のステータスを示します。例えば、SUCCEEDED
、FAILED
、RETRIABLE
、および CAUGHT_ERROR
などです。nextState
は、次に遷移するステートの名前を示します。定義に次のステートを定義していない場合、このフィールドは空の値を返します。
でこれらの検査レベルを使用して状態をテストする方法については、「」を参照してください。Step Functions コンソールと AWS CLI、ステートのテスト (コンソール)「」および「」を参照してくださいを使用した状態テスト AWS CLI。
INFO inspectionLevel
テストが成功すると、このレベルにはステート出力が表示されます。テストが失敗した場合、このレベルにはエラー出力が表示されます。デフォルトでは、Step Functions レベルを指定しない場合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。以下の画像の [入出力処理タブ] には、障害発生時点までのステートの入出力データ処理結果が表示されます。
TRACE inspectionLevel
Step Functions は、HTTPタスク をテストするTRACEレベルを提供します。このレベルは、 HTTPStep Functions は、サードパーティーがAPI返す とレスポンスを行います。レスポンスには、ヘッダーやリクエスト本文などの情報が含まれる場合があります。さらに、このレベルでの入出力データ処理のステート出力と結果も表示できます。
テストが失敗した場合、このレベルにはエラー出力が表示されます。
このレベルはHTTPタスクにのみ適用されます。Step Functions は、このレベルを他の状態タイプに使用するとエラーをスローします。
検査レベルを に設定するとTRACE、EventBridge 接続 に含まれるシークレットを表示することもできます。これを行うには、 true
で revealSecrets
パラメータを TestState に設定する必要がありますAPI。さらに、IAM を TestState API呼び出すユーザーには、 states:RevealSecrets
アクションに対するアクセス許可があります。の例 IAM states:RevealSecrets
アクセス許可を設定するポリシーについては、「」を参照してくださいIAM を使用するためのアクセス許可 TestState API。このアクセス許可がないと、Step Functions はアクセス拒否エラーをスローします。
revealSecrets
パラメータを に設定するとfalse
、Step Functions は、HTTPリクエストおよびレスポンスデータ内のすべてのシークレットを省略します。
次の図は、成功したHTTPタスクのテストを示しています。この状態の検査レベルは に設定されますTRACE。次の図のHTTPリクエストとレスポンスタブは、サードパーティーのAPI呼び出しの結果を示しています。
IAM を使用するためのアクセス許可 TestState API
- IAM を呼び出すユーザーには、 states:TestState
および iam:PassRole
アクションを実行するためのアクセス許可TestState
APIが必要です。さらに、 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リクエストとレスポンスをテストできます。
ステートをテストするには
-
Step Functions コンソール
を開きます。 -
[ステートマシンの作成] を選択してステートマシンの作成を開始するか、既存のステートマシンを選択します。
-
Workflow Studio の デザインモード で、テストするステートを選択します。
-
Workflow Studio の Inspector パネル パネルで [ステートをテスト] を選択します。
-
[ステートをテスト] ダイアログボックスで、次の操作を行います。
-
[実行ロール] では、ステートをテストする実行ロールを選択します。必要な IAM テストする状態のアクセス許可。
-
(オプション) 選択した状態がテストに必要とするJSON入力を入力します。
-
[検査レベル] では、表示したい値に基づいて以下のオプションのいずれかを選択します。
-
INFO – テストが成功した場合、出力タブに状態出力を表示します。テストが失敗した場合、 はエラー出力INFOを表示します。これには、エラー名と、そのエラーの原因の詳細な説明が含まれます。デフォルトでは、Step Functions レベルを選択しINFOない場合、 は検査レベルを に設定します。
-
DEBUG – テストが成功した場合の状態出力と入力および出力データ処理の結果を表示します。テストが失敗した場合、 はエラー出力DEBUGを表示します。これには、エラー名と、そのエラーの原因の詳細な説明が含まれます。
-
TRACE – raw HTTPリクエストとレスポンスを表示し、ヘッダー、クエリパラメータ、その他の API固有の詳細を検証するのに役立ちます。このオプションは、HTTPタスク でのみ使用できます。
オプションで [シークレットを公開] を選択することもできます。と組み合わせて、この設定ではTRACE、EventBridge API キーなどの接続挿入。- IAM コンソールへのアクセスに使用するユーザー ID には、
states:RevealSecrets
アクションを実行するアクセス許可が必要です。このアクセス許可がないと、Step Functions は、テストの開始時にアクセス拒否エラーをスローします。の例 IAMstates:RevealSecrets
アクセス許可を設定するポリシーについては、「」を参照してくださいIAM を使用するためのアクセス許可 TestState API。
-
-
[テストを開始] を選択します。
-
を使用した状態テスト 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パラメータTRACE
inspectionLevelとともに を使用して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
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、パラメータ、ResultSelector、Step Functions ワークフロー ResultPath で を使用して状態出力を指定する、および Step Functions ワークフロー OutputPath で を使用して状態出力をフィルタリングする です。各フィールドのサポートはステートによって異なります
以下のリストは、図に示されている入力処理フィールドと出力処理フィールドの適用順序を示しています。
-
状態入力は、以前の状態から現在の状態に渡されるJSONデータです。
-
InputPath は未加工のステート入力の一部をフィルタリングします。
-
タスクは作業を実行し、結果を返します。
-
ResultSelector はタスク結果から除外する値のセットを選択します。
-
Step Functions ワークフロー ResultPath で を使用して状態出力を指定する は結果を未加工のステート入力と結合するか、結果をそれに置き換えます。
-
Step Functions ワークフロー OutputPath で を使用して状態出力をフィルタリングする は出力の一部をフィルタリングして次のステートに渡します。
-
状態出力は、現在の状態から次の状態に渡されるJSONデータです。
これらの入力処理フィールドと出力処理フィールドはオプションです。ステート定義にこれらのフィールドをまったく使用しない場合、タスクは未加工のステート入力を消費し、タスクの結果をステート出力として返します。
TestState を使用して入出力処理を検査する
を呼び出し、 inspectionLevel
パラメータを に設定するTestState
APIとDEBUG
、APIレスポンスには というオブジェクトが含まれますinspectionData
。このオブジェクトには、実行時にステート内でデータがどのようにフィルタリングまたは操作されたかを調べるのに役立つフィールドが含まれています。次の例は、inspectionData
オブジェクトのタスクステートを示しています。
"inspectionData": {
"input": string,
"afterInputPath": string,
"afterParameters": string,
"result": string,
"afterResultSelector": string,
"afterResultPath": string,
"output": string
}
この例では、after
プレフィックスを含む各フィールドには、特定のフィールドが適用された後のデータが表示されます。例えば、afterInputPath
は InputPath
フィールドを適用して未加工のステート入力をフィルタリングしたときの効果を示しています。次の図は、各ASL定義フィールドを inspectionData
オブジェクト内の対応するフィールドにマッピングします。
を使用して入出力処理を TestState APIデバッグする例については、以下を参照してください。