Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Step Functions で Workflow Studio を使用して状態の入力と出力を設定する

フォーカスモード
Step Functions で Workflow Studio を使用して状態の入力と出力を設定する - AWS Step Functions

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

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

状態の管理とデータの変換

各状態は、受け取った入力に基づいて決定を下すか、アクションを実行します。ほとんどの場合、出力を他の状態に渡します。Workflow Studio では、インスペクターパネル パネルの [入力] タブおよび [出力] タブでステートが入力と出力データをフィルタリングし、操作する方法を設定できます。[Info] リンクを使用して、入力と出力を設定する時にコンテキストヘルプにアクセスします。

状態入力、出力、および情報ヘルプパネルを示すスクリーンショットの例

Step Functions の入出力処理方法の詳細については、Step Functions の入力および出力処理 を参照してください。

状態へ入力を構成する

各状態は、前の状態からの入力を JSON として受け取ります。入力をフィルターする場合は、インスペクターパネル パネルの [入力] タブで InputPath フィルターを使用できます。InputPath は文字列であり、$ で始まり、特定の JSON ノードを識別します。これらはリファレンスパス と呼ばれ、JsonPath 構文をフォローします。

入力をフィルターするには、次の手順を実行します。

  • [InputPath で入力をフィルタリング] を選択します。

  • InputPath フィルターに有効な JsonPath を入力してください。例えば、$.data と指定します。

ご自分の InputPath フィルターがご自分のワークフローに追加されます。

例 1: Workflow Studio スタジオの InputPath フィルターを使用する

ステートへの入力に次の JSON データが含まれているとします。

{ "comment": "Example for InputPath", "dataset1": { "val1": 1, "val2": 2, "val3": 3 }, "dataset2": { "val1": "a", "val2": "b", "val3": "c" } }

InputPath フィルターを適用するには、[InputPath で入力をフィルタリング] を選択し、適切なリファレンスパスを入力します。$.dataset2.val1 に入ると、次の JSON が状態への入力として渡されます。

{"a"}

リファレンスパスでは、値の選択もできます。リファレンスが { "a": [1, 2, 3, 4] } で、リファレンスパス$.a[0:2]InputPath フィルターとして適用した場合、結果は次のようになります。

[ 1, 2 ]

Parallel ワークフローの状態Map 状態のワークフローPass ワークフロー状態 フローには、[入力] タブで Parameters と呼ばれる追加の入力フィルタリングオプションがあります。このフィルターは InputPath フィルターの後に有効になり、1 つ以上のキーバリューペアで構成されるカスタム JSON オブジェクトを構築するために使用できます。各ペアの値は、静的な値のいずれかとなり、入力から選択するか、パスを使って Step Functions の Context オブジェクトからの実行データへのアクセス から選択することができます。

注記

パラメータでリファレンスパスを使用して入力内の JSON ノードを参照するように指定するには、パラメータ名の末尾を .$ で終了します。

例 2: パラレルステート用のカスタム JSON 入力の作成

次の JSON データがパラレルステートへの入力であるとします。

{ "comment": "Example for Parameters", "product": { "details": { "color": "blue", "size": "small", "material": "cotton" }, "availability": "in stock", "sku": "2317", "cost": "$23" } }

この入力の一部を選択し、静的な値を使って追加のキーバリューペアを渡すには、[パラメータ] フィールドで [並列] 状態の [入力] タブ で次のように指定できます。

{ "comment": "Selecting what I care about.", "MyDetails": { "size.$": "$.product.details.size", "exists.$": "$.product.availability", "StaticValue": "foo" } }

次の JSON データが結果になります。

{ "comment": "Selecting what I care about.", "MyDetails": { "size": "small", "exists": "in stock", "StaticValue": "foo" } }

状態の出力を構成

状態ごとに、次の状態に渡される前にフィルタリングできる JSON 出力を生成します。複数のフィルタが使用でき、それぞれ異なる方法で出力に影響します。各状態で使用可能な出力フィルターは、[Inspector] 内の [出力] タブでリストされます。Task ワークフロー状態 状態では、選択した出力フィルターは次の順序で処理されます。

  1. ResultSelector: 状態の結果を操作するためにこのフィルターを使用します。結果の一部を使用して新しい JSON オブジェクトを作成できます。

  2. Step Functions で ResultPath を使用して状態出力を指定する: このフィルターを使用して、出力に渡す状態入力とタスク結果の組み合わせを選択します。

  3. OutputPath を使用した状態出力のフィルタリング: このフィルターを使用して、JSON 出力をフィルターして、結果からどの情報を次の状態に渡すのか選択します。

ResultSelector の使用

ResultSelector は、次の状態に対するオプションの出力フィルターです。

ResultSelector を使用して、1 つ以上のキーバリューペアで構成されるカスタム JSON オブジェクトを作成できます。各ペアの値は、静的な値にすることも、状態の結果からパスで選択することもできます。

注記

パラメータでパスを使用して、結果内の JSON ノードをリファレンスにするように指定するには、パラメータ名の末尾を .$ で終了します。

例 ResultSelector フィルターの使用例

この例では、ResultSelector を使って、Amazon EMR CreateCluster 状態の Amazon EMR CreateCluster API コールからのレスポンスを操作します。以下は、Amazon EMR CreateCluster API コールからの結果です。

{ "resourceType": "elasticmapreduce", "resource": "createCluster.sync", "output": { "SdkHttpMetadata": { "HttpHeaders": { "Content-Length": "1112", "Content-Type": "application/x-amz-JSON-1.1", "Date": "Mon, 25 Nov 2019 19:41:29 GMT", "x-amzn-RequestId": "1234-5678-9012" }, "HttpStatusCode": 200 }, "SdkResponseMetadata": { "RequestId": "1234-5678-9012" }, "ClusterId": "AKIAIOSFODNN7EXAMPLE" } }

この情報パートを選択し、静的値を持つ追加のキーバリューのペアを渡すには、状態の [出力] タブの下、[ResultSelector] フィールドで次のように指定します。

{ "result": "found", "ClusterId.$": "$.output.ClusterId", "ResourceType.$": "$.resourceType" }

ResultSelector を使用すると、次の結果になります。

{ "result": "found", "ClusterId": "AKIAIOSFODNN7EXAMPLE", "ResourceType": "elasticmapreduce" }

ResultPath の使用

状態の出力は、入力のコピー、生成される結果、またはその入力と結果の組み合わせです。ResultPath を使用して、上記のうち、状態出力に渡す組み合わせを制御します。その他の ResultPath ユースケースについては、Step Functions で ResultPath を使用して状態出力を指定する を参照してください。

ResultPath は、次の状態に対するオプションの出力フィルターです。

ResultPath は、結果を元の状態の入力に追加するために使用できます。指定されたパスは、結果を追加する場所を示します。

例 ResultPath フィルターの使用例

次のものがタスクステートへの入力であるとします。

{ "details": "Default example", "who": "AWS Step Functions" }

タスクステートの結果は次のとおりです。

Hello, AWS Step Functions

ResultPath を適用し、$.taskresult のように、結果を追加する場所を示すリファレンスパスを入力して、状態の入力にこの結果を追加します。

この ResultPath を使って、状態の出力として渡される JSON を次に示します。

{ "details": "Default example", "who": "AWS Step Functions", "taskresult": "Hello, AWS Step Functions!" }

OutputPath を使用する

OutputPath フィルターを使うと、不要な情報をフィルターして、必要な一部の JSON のみを渡すことができるようになります。OutputPath$ で始まる文字列で、JSON テキスト内のノードを識別します。

例 OutputPath フィルターの使用例

Lambda Invoke API コールが Lambda 関数の結果に加えてメタデータを返すとしましょう。

{ "ExecutedVersion": "$LATEST", "Payload": { "foo": "bar", "colors": [ "red", "blue", "green" ], "car": { "year": 2008, "make": "Toyota", "model": "Matrix" } }, "SdkHttpMetadata": { "AllHttpHeaders": { "X-Amz-Executed-Version": ["$LATEST"] ...

OutputPath を使用して、追加のメタデータをフィルターで除外します。デフォルトでは、Workflow Studio で作成された Lambda Invoke 状態の [OutputPath] フィルターの値は $.Payload です。このデフォルト値では、追加のメタデータが削除され、Lambda 関数を直接実行するのに等しい出力が返されます。

Lambda 呼び出しタスクの結果の例と [出力] フィルターの $.Payload の値は、次の JSON データを出力として渡します。

{ "foo": "bar", "colors": [ "red", "blue", "green" ], "car": { "year": 2008, "make": "Toyota", "model": "Matrix" } }
注記

OutputPath フィルターは、最後に有効になる出力フィルターであるため、ResultSelector または ResultPath のような追加出力フィルターを使用する場合は、OutputPath フィルターの $.Payload のデフォルト値を適宜変更する必要があります。

このページの内容

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.