Cookie の設定を選択する

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

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

Choice ワークフローの状態

フォーカスモード
Choice ワークフローの状態 - AWS Step Functions

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

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

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

Choice 状態 ("Type": "Choice") はステートマシンに条件付きロジックを追加します。

共通状態フィールドの大半に加えて、Choice 状態には次の追加フィールドが含まれます。

Choices (必須)

ステートマシンが次に移行する状態を決定する選択ルールの配列。

Choice 状態が実行されると、各選択ルールは true または false と評価されます。この評価の結果に基づいて、Step Functions はワークフローの次の状態に移行します。

Choice 状態では、少なくとも 1 つのルールを定義する必要があります。

Default (オプション、推奨)

Choices のいずれの移行も実行されない場合の移行先の状態の名前。

重要

Choice 状態では End フィールドはサポートされません。また、NextChoices フィールド内でのみ使用されます。

選択ルール (JSONata)

Choice 状態には、値が選択ルールの空でない配列であるChoicesフィールドが必要です。JSONata を使用する場合、次のフィールドが含まれます。

  • Condition field – true/false と評価される JSONata 式。

  • Next フィールド – ステートマシンの状態名と一致する必要がある値。

次の例では、数値が 1 と等しいかどうかを確認します。

{ "Condition": "{% $foo = 1 %}", "Next": "NumericMatchState" }

次の例では、変数 typeが と等しいかどうかを確認しますlocal

{ "Condition": "{% $type = 'local' %}", "Next": "StringMatchState" }

次の例では、文字列が MyStringABC を超過しているかどうかを確認します。

{ "Condition": "{% $foo > 'MyStringABC' %}", "Next": "StringGreaterMatchState" }

次の例では、文字列が null でないかどうかを確認します。

{ "Condition" : "{% $possiblyNullValue != null and $possiblyNullValue = 42 %}", "Next": "NotNullAnd42" }

選択ルール (JSONPath)

Choice 状態には、値が選択ルールの空でない配列であるChoicesフィールドが必要です。JSONPath を使用する場合、次のフィールドが含まれます。

  • 比較 – 比較する入力変数、比較のタイプ、および可変を比較する値に指定する 2 つのフィールド。選択ルールは、2 つの可変の比較をサポートします。選択ルール内で、可変値は、サポートされている比較演算子の名前に Path を加えて、状態入力の別の値と比較できます。比較対象の Variable フィールドとパスフィールドの値は、有効な参照パスでなければなりません。

  • Next フィールド – このフィールドの値はステートマシンの状態名と一致する必要があります。

次の例では、数値が 1 と等しいかどうかを確認します。

{ "Variable": "$.foo", "NumericEquals": 1, "Next": "FirstMatchState" }

次の例では、文字列が MyString と等しいかどうかを確認します。

{ "Variable": "$.foo", "StringEquals": "MyString", "Next": "FirstMatchState" }

次の例では、文字列が MyStringABC を超過しているかどうかを確認します。

{ "Variable": "$.foo", "StringGreaterThan": "MyStringABC", "Next": "FirstMatchState" }

次の例では、文字列が null かどうかを確認します。

{ "Variable": "$.possiblyNullValue", "IsNull": true }

次の例は、IsPresent 選択ルール が先行しているため、$.keyThatMightNotExist が 存在する場合は、StringEquals ルールのみが評価される方法を示しています。

"And": [ { "Variable": "$.keyThatMightNotExist", "IsPresent": true }, { "Variable": "$.keyThatMightNotExist", "StringEquals": "foo" } ]

次の例では、ワイルドカードを含むパターンが一致するかどうかを確認します。

{ "Variable": "$.foo", "StringMatches": "log-*.txt" }

次の例では、タイムスタンプが 2001-01-01T12:00:00Z と等しいかどうかを確認します。

{ "Variable": "$.foo", "TimestampEquals": "2001-01-01T12:00:00Z", "Next": "FirstMatchState" }

次の例では、可変を状態の入力の別の値と比較します。

{ "Variable": "$.foo", "StringEqualsPath": "$.bar" }

Step Functions は Choices フィールドにリストされた順序で各選択ルールを検討します。次に、最初の選択ルールの Next フィールドで指定された状態に遷移します。ここで、変数は比較演算子に従って値と一致します。

次の比較演算子がサポートされています。

  • And

  • BooleanEquals,BooleanEqualsPath

  • IsBoolean

  • IsNull

  • IsNumeric

  • IsPresent

  • IsString

  • IsTimestamp

  • Not

  • NumericEquals,NumericEqualsPath

  • NumericGreaterThan,NumericGreaterThanPath

  • NumericGreaterThanEquals,NumericGreaterThanEqualsPath

  • NumericLessThan,NumericLessThanPath

  • NumericLessThanEquals,NumericLessThanEqualsPath

  • Or

  • StringEquals,StringEqualsPath

  • StringGreaterThan,StringGreaterThanPath

  • StringGreaterThanEquals,StringGreaterThanEqualsPath

  • StringLessThan,StringLessThanPath

  • StringLessThanEquals,StringLessThanEqualsPath

  • StringMatches

  • TimestampEquals,TimestampEqualsPath

  • TimestampGreaterThan,TimestampGreaterThanPath

  • TimestampGreaterThanEquals,TimestampGreaterThanEqualsPath

  • TimestampLessThan,TimestampLessThanPath

  • TimestampLessThanEquals,TimestampLessThanEqualsPath

これらの演算子のそれぞれで、対応する値が適切なタイプ (文字列、数値、ブール値、またはタイムスタンプ) である必要があります。Step Functions では、数値フィールドと文字列値の一致を試みません。ただし、タイムスタンプフィールドは論理的に文字列であるため、タイムスタンプとみなされるフィールドを StringEquals コンパレータで一致させることはできます。

注記

相互運用性のため、数値比較は IEEE 754-2008binary64 データタイプで表される大きさまたは精度を外れる値では機能しないと考えてください。特に、[-253+1, 253-1] の範囲外の整数では想定した形での比較が失敗する可能性があります。

タイムスタンプ (例えば、2016-08-18T17:33:00Z) は、RFC3339 プロファイル ISO 8601 に準拠している必要があり、さらに制限があります。

  • 大文字の T で日付部分と時刻部分を区切る必要があります。

  • 大文字の Z で数値タイムゾーンオフセットが存在しないことを示す必要があります。

文字列比較の動作を理解するには、Java compareTo のドキュメントを参照してください。

And および Or 演算子は選択ルールの空ではない配列の値であり、それ自体に Next フィールドを含まない必要があります。同様に、Not 演算子の値は単一の選択ルールである必要があり、Next フィールドを含めることはできません。

AndNot、および Or を使用して、複雑なネスト化された選択ルールを作成できます。ただし、Next フィールドは最上位の選択ルールにのみ使用できます。

1 つ以上のワイルドカード (「*」) を使用したパターンに対する文字列比較は、StringMatches 比較演算子を使用して実行できます。ワイルドカード文字は、スタンダード \\ (Ex: “\\*”) を使用してエスケープされます。「*」以外の文字は、マッチング中に特別な意味を持ちません。

このページの内容

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