データフローシミュレーターを使用して Step Functions でデータフローをテストする - AWS Step Functions

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

データフローシミュレーターを使用して Step Functions でデータフローをテストする

Step Functions コンソールでワークフローを設計、実装、およびデバッグできます。JsonPath 入出力データ処理を使用して、ワークフロー内のデータフローを制御することもできます。データフローシミュレーターを使用すると、ワークフロー内の タスクワークフローの状態 ステートがランタイムにデータを処理する順序をシミュレートできます。シミュレーターを使用すると、あるステートから別のステートに流れるデータがどのようにフィルタリングされて操作されるかを理解できます。Step Functions がJSONデータフローの処理と制御に使用する以下の各フィールドをシミュレートします。

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 および パラメータフィールドを適用します。使用可能な他のフィールドを適用して、その出力を表示することもできます。

  1. Step Functions コンソールを開きます。

  2. ナビゲーションペインで、[データフローシミュレーター] を選択します。

  3. 状態入力エリアで、事前入力されたサンプル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" } } }
  4. にはInputPath$.data.addressと入力し、入力JSONデータのアドレスノードを選択します。

    ボックスの後の状態入力 InputPathには、次の結果が表示されます。

    { "street": "123 Main St", "city": "Columbus", "state": "OH", "zip": "43219" }
  5. [Next (次へ)] を選択します。

  6. Parameters フィールドを適用して、結果のJSONデータを文字列に変換します。データを変換するには、次のようにします。

    1. [パラメータ] ボックスに、次のコードを入力して、addressString という文字列を作成します。

      { "addressString.$": "States.Format('{}. {}, {} - {}', $.street, $.city, $.state, $.zip)" }
  7. 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 を評価する場合、シミュレーターは期待される出力を返します。