このトピックでは、Flow Definition Language(FDL)の基本と関連する例について説明します。
基本
FDLは、ビジネスロジックを記述および定義するために使用されます。フローが実行されると、サーバーレスワークフロー サービスは、フロー定義に基づいてステップを順番に実行します。FDLでは、フローには通常、複数のステップが含まれています。これらのステップは、task、succeed、fail、wait、pass ステップなどの単純なアトミックステップ、または choice、parallel、foreach ステップなどの複雑な制御ステップです。これらのステップを組み合わせて、複雑なビジネスロジックを構築できます。たとえば、並列ステップのブランチは、一連のシリアルステップである場合があります。ステップの実行中にエラーが発生する可能性がありますが、FDLは retry 機能と catch 機能を提供します。
FDLのステップはプログラミング言語の関数に似ており、ステップの組み合わせは関数呼び出しに似ています。データは、入力と出力を通じてステップ間で渡されます。ローカル変数は、ステップのデータを格納するために使用されます。ステップに別のステップが含まれている場合、外側のステップは親ステップと呼ばれ、含まれているステップは子ステップと呼ばれます。
フローを定義するときは、次の操作を実行できます。
passステップを使用して、プレースホルダー計画フローの基本構造を構築します。taskステップを使用して、関数計算サービスの関数を呼び出します。waitステップを使用して、フローを一定期間中断します。choiceステップを使用して、異なる実行パスを定義します。succeedステップまたはfailステップを使用して、フローを事前に終了します。parallelステップを使用して、複数のブランチを並列に実行します。foreachステップを使用して、配列データを並列処理します。
フローには、次の属性が含まれています。
- version: 必須。フローバージョン。v1 のみがサポートされています。
- type: 必須。フロータイプ。
- steps: 必須。フロー内の複数のシリアルステップ。ステップが正常に実行されると、次のステップが開始されます。フローを事前に停止するには、
end属性を使用するか、succeed ステップまたは fail ステップを実行します。 - inputMappings: オプション。入力マッピング。入力マッピングで参照される
$inputは、入力StartExecutionAPIリクエストの パラメーターです。 - outputMappings: オプション。出力マッピング。出力マッピングで参照される
$localは、各シリアルステップの実行結果を記録する JSON オブジェクトです。説明 出力マッピングが指定されていない場合、$localが最終的なフロー出力として使用されます。 - timeoutSeconds: オプション。フローのタイムアウト期間。フローの実行時間が指定されたタイムアウト期間を超えると、フローはタイムアウトになります。
例
- 次のサンプルフローは、関数計算の関数を呼び出す task ステップで構成されています。
version: v1 type: flow steps: - type: task name: hello resourceArn: acs:fc:{region}:{accountID}:services/fnf_test/functions/hello - 次のサンプルフローは、2 つのステップ(
step1とstep4)で構成されており、step1には 2 つの子ステップ(step2とstep3)が含まれています。version: v1 type: flow steps: - type: parallel name: step1 branches: - steps: - type: pass name: step2 - steps: - type: pass name: step3 - type: pass name: step4
参照
FDL 機能の詳細については、以下のトピックを参照してください。