翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
データフローシミュレーターを使用して Step Functions でデータフローをテストする
Step Functions コンソール
InputPath
-
タスクの入力として使用する入力ペイロード全体のWHAT部分を選択します。このフィールドを指定すると、Step Functions は、最初にこのフィールドを適用します。
パラメータ
-
タスクHOWを呼び出す前に、入力が のようになります。
Parameters
フィールドを使用すると、AWS Lambda 関数などのAWS サービス の統合の入力として渡されるキーと値のペアのコレクションを作成できます。これらの値は、静的にすることも、状態入力またはワークフローコンテキストオブジェクトから動的に選択することもできます。 ResultSelector
-
タスクの出力から選択WHATすることを決定します。
ResultSelector
フィールドを使用すると、状態の結果を置き換えるキーと値のペアのコレクションを作成し、そのコレクションをResultPath
に渡すことができます。 Step Functions ワークフロー ResultPath で を使用して状態出力を指定する
-
タスクの出力WHEREを配置することを決定します。
ResultPath
を使用して、状態の出力が、入力のコピー、生成された結果、またはその両方の組み合わせなのかを判断します。 Step Functions ワークフロー OutputPath で を使用して状態出力をフィルタリングする
-
次の状態WHATに送信することを決定します。を使用すると
OutputPath
、不要な情報をフィルタリングして、関心のあるJSONデータの一部のみを渡すことができます。
このトピックの内容
データフローシミュレータの使用
シミュレーターは、入出力データ処理フィールドを適用する前と適用後のデータをリアルタイムで side-by-side 比較します。シミュレーターを使用するには、JSON入力を指定します。次にそれを、入力処理フィールドと出力処理フィールドのそれぞれで評価します。シミュレーターは自動的にJSON入力を検証し、構文エラーがあれば強調表示します。
データフローシミュレーターを使用するには
次のステップでは、JSON入力を指定し、 InputPath
および パラメータ
フィールドを適用します。使用可能な他のフィールドを適用して、その出力を表示することもできます。
-
Step Functions コンソール
を開きます。 -
ナビゲーションペインで、[データフローシミュレーター] を選択します。
-
状態入力エリアで、事前入力されたサンプルJSONデータを次のJSONデータに置き換えます。[次へ] を選択します。
{ "data": { "firstname": "Jane", "lastname": "Doe", "identity": { "email": "jdoe@example.com", "ssn": "123-45-6789" }, "address": { "street": "123 Main St", "city": "Columbus", "state": "OH", "zip": "43219" } } }
-
にはInputPath、
$.data.address
と入力し、入力JSONデータのアドレスノードを選択します。ボックスの後の状態入力 InputPathには、次の結果が表示されます。
{ "street": "123 Main St", "city": "Columbus", "state": "OH", "zip": "43219" }
-
[Next (次へ)] を選択します。
-
Parameters
フィールドを適用して、結果のJSONデータを文字列に変換します。データを変換するには、次のようにします。-
[パラメータ] ボックスに、次のコードを入力して、
addressString
という文字列を作成します。{ "addressString.$": "States.Format('{}. {}, {} - {}', $.street, $.city, $.state, $.zip)" }
-
-
Parameters
フィールドアプリケーションの結果が [パラメータの後にフィルタリングされた入力] ボックスに表示されます。
データフローシミュレーターの使用に関する考慮事項
データフローシミュレータを使用する前に、以下を含む制限事項を考慮してください。ただし、制限事項はこれらに限定されません。
-
サポートされていないフィルター式
フィルター式の動作は、シミュレーターと Step Functions サービスでは異なります。これには、次の構文を使用する式が含まれます。
[?(expression)]
。以下は、サポートされていない式の一覧です。これらの式を使用すると、評価後に期待どおりの結果が得られない場合があります。-
$..book[?(@.isInStock==true)]
-
$..book[?(@.price > 10.0)].title
-
-
単一項目配列 JsonPath の評価が正しくない
単一の配列項目を返す JsonPath 式でデータをフィルタリングすると、シミュレーターは配列なしで項目を返します。例えば、
items
というデータ配列を考えてみましょう。{ "items": [ { "name": "shoe", "color": "blue", "comment": "nice shoe" }, { "name": "hat", "color": "red" }, { "name": "shirt", "color": "yellow" } ] }
この
items
配列が指定されている場合に InputPath フィールドに$..comment
と入力すると、出力は次のようになります。[ "nice shoe" ]
ただし、データフローシミュレーターは代わりに次の出力を返します。
"nice shoe"
複数の項目を含む配列 JsonPath を評価する場合、シミュレーターは期待される出力を返します。