翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step Functions でワークフロータイプを選択する
ステートマシンを作成するときは、一般的に標準ワークフローまたは Express ワークフローと呼ばれる、Standard (デフォルト) または Express のタイプを選択する必要があります。
両方のステートマシンタイプは、 を使用して定義しますAmazon States Language を使用して Step Functions ワークフローを定義する。
標準ワークフローとエクスプレスワークフローの両方が、Amazon API Gateway からの HTTP リクエスト、IoT ルール、Amazon EventBridge の 140 を超える他のイベントソースなどのイベントに応答して開始できます。
ワークフロータイプはイミュータブルです
ステートマシンの作成後にワークフロータイプを更新することはできません。
Standard ワークフローは、長時間実行され (最長 1 年)、耐久性が高く、監査可能なワークフローに最適です。実行完了後 90 日以内であれば Step Functions API を使用して完全な実行履歴を取得できます。
標準ワークフローは、ASL でRetry
動作を指定しない限り、タスクと状態が複数回実行されない exactly-onceモデルに従います。このexactly-onceモデルは、Amazon EMR クラスターの開始や支払いの処理など、べき等でないアクションの調整に適した標準ワークフローを作成します。
標準ワークフローの実行は、処理された状態遷移の数に応じて課金されます。
Express ワークフローは、IoT のデータインジェスト、ストリーミングデータ処理と変換、モバイルアプリケーションのバックエンドなど、大容量のイベント処理ワークロードに最適です。これらのワークフローは最大 5 分間実行できます。
Express ワークフローは at-least-onceモデルを使用するため、実行が複数回実行される可能性があります。このat-least-onceモデルにより、Express ワークフローは、PUT アクションを使用して Amazon DynamoDB に保存する入力データの変換など、べき等アクションの調整により適しています。
Express ワークフローの実行は、実行数、実行の合計時間、および実行中に消費されるメモリによって請求されます。
ヒント
Express ワークフローの例をデプロイするには、「 AWS Step Functions ワークショップ」の「データを並列
Standard ワークフロータイプと Express ワークフロータイプの比較
タイプ/カテゴリ | 標準ワークフロー | エクスプレスワークフロー:同期および非同期 |
---|---|---|
最大期間 | 1 年 | 5 分 |
サポートされている実行開始レート |
サポートされている実行開始レートに関連するクォータについては、「API アクションのスロットリングに関連するクォータ」を参照してください。 |
サポートされている実行開始レートに関連するクォータについては、「API アクションのスロットリングに関連するクォータ」を参照してください。 |
サポートされている状態遷移レート |
サポートされている状態遷移レートに関連するクォータについては、「状態のスロットリングに関連するクォータ」を参照してください。 |
無制限 |
料金表 |
状態遷移回数による価格設定。状態遷移は、実行のステップが完了するたびにカウントされます。 | 実行回数、実行時間、およびメモリ消費量によって価格設定されます。 |
実行履歴 |
実行は、Step Functions API を使用して一覧表示および記述できます。実行は、コンソールから視覚的にデバッグできます。ステートマシンでのログを有効にすることで、CloudWatch Logs で実行を検査することもできます。 コンソールでの標準ワークフロー実行のデバッグの詳細については、「Standard コンソールと Express コンソールのエクスペリエンスの違い」と「ワークフローの実行の表示」を参照してください。 |
実行履歴は無制限に、つまり 5 分以内に生成できる限り多くの実行履歴エントリが保持されます。 ステートマシンでログ記録を有効にすることで、実行を CloudWatch Logs または Step Functions コンソールで検査できます。 コンソールでの Express ワークフロー実行のデバッグの詳細については、「Standard コンソールと Express コンソールのエクスペリエンスの違い」と「ワークフローの実行の表示」を参照してください。 |
実行セマンティクス | Exactly-once ワークフロー実行。 | 非同期 Express ワークフロー: At-least-once ワークフロー実行。 同期 Express ワークフロー: At-most-once ワークフロー実行。 |
サービス統合 | すべてのサービス統合とパターンをサポートします。 | すべてのサービス統合をサポートします。注記Express ワークフローはジョブ実行 ( |
分散マップ | サポート | サポートされていません |
アクティビティ | サポート | サポートされていません |
ワークフロータイプの最適化
比較とコスト影響分析の例については、「Step Functions を使用した大規模なデータ処理」ワークショップの「ワークフロータイプの選択
Step Functions での同期および非同期 Express ワークフロー
選択できる Express ワークフローには、非同期 Express ワークフローと同期 Express ワークフローの 2 種類があります。
-
非同期 Express ワークフローは、ワークフローが開始されたことの確認を返しますが、ワークフローの完了を待機しません。結果を得るには、サービスの [CloudWatch Logs] ポーリングを行う必要があります。非同期 Express ワークフローは、メッセージングサービスや、他のサービスが依存しないデータ処理など、即時のレスポンス出力が必要ではない場合に使用できます。非同期 Express ワークフローは、イベントに応えて、Step Functions 内のネストされたワークフローまたは
StartExecution
API コールを使用して開始できます。 -
同期 Express ワークフローはワークフローを開始して、それが完了するまで待機してから、結果を返します。同期 Express ワークフローはマイクロサービスのオーケストレーションに使用できます。同期 Express ワークフローを使用すると、エラー処理、再試行、並列タスクの実行のための追加のコードを開発しなくても、アプリケーションを開発できます。Amazon API Gateway から呼び出された同期 Express ワークフローを実行するか AWS Lambda、
StartSyncExecution
API コールを使用できます。注記
Step Functions Express ワークフローをコンソールから同期的に実行した場合、
StartSyncExecution
リクエストは 60 秒後に失効します。Express ワークフローを最大 5 分間同期的に実行するには、Step Functions コンソールの代わりに AWS SDK または AWS Command Line Interface (AWS CLI) を使用してStartSyncExecution
リクエストを行います。同期 Express 実行 API コールは、既存のアカウント容量制限には影響しません。Step Functions は、オンデマンドで容量を提供し、持続的なワークロードを使って、自動的に拡張します。容量が利用可能になるまで、ワークロードの急増をスロットリングできます。
Step Functions ワークフローの実行の保証
標準ワークフロー | 非同期 Express ワークフロー | 同期 Express ワークフロー |
---|---|---|
Exactly-once ワークフロー実行 | At-least-once ワークフロー実行 | At-most-once ワークフロー実行 |
実行状態は状態遷移の間も内部的に持続します。 | 実行状態は状態遷移の間は持続しません。 | 実行状態は状態遷移の間は持続しません。 |
現在実行中のワークフローと同じ名前で実行を開始すると、自動的にべき等性の応答が返されます。新しいワークフローは開始せず、現在実行中のワークフローが完了すると例外がスローされます。 | べき等性は自動的には管理されません。同じ名前で複数のワークフローを開始すると、同時に実行されます。ステートマシンのロジックがべき等でないと、内部ワークフローの状態が失われる可能性があります。 | べき等性は自動的には管理されません。Step Functions は実行が開始されると待機し、完了時にステートマシンの結果を返します。例外が発生しても、ワークフローは再開されません。 |
実行履歴データは 90 日後に削除されました。ワークフロー名は古い実行データを削除した後も再利用できます。 コンプライアンス、組織、または規制の要件を満たすために、クォータリクエストを送信することによって実行履歴の保持期間を 30 日に短縮できます。これを行うには、 を使用して新しいケース AWS Support Center Console を作成します。 |
実行履歴は Step Functions ではキャプチャされません。ログ記録は Amazon CloudWatch Logs を通じて有効にする必要があります。 | 実行履歴は Step Functions ではキャプチャされません。ログ記録は Amazon CloudWatch Logs を通じて有効にする必要があります。 |