翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step Functions とは
AWS Step Functionsを使用すると、ステートマシン とも呼ばれるワークフローを作成して、分散アプリケーションの構築、プロセスの自動化、マイクロサービスのオーケストレーション、データと機械学習パイプラインの作成を行うことができます。
Step Functions はステートマシンとタスク に基づいています。Step Functions では、ステートマシンはワークフロー と呼ばれ、一連のイベント駆動型ステップです。ワークフローの各ステップは、状態 と呼ばれます。例えば、タスク状態は、別の AWS サービス や を呼び出すなど、別の AWS サービスが実行する作業単位を表しますAPI。タスクを実行するワークフローを実行するインスタンスは、Step Functions で実行と呼ばれます。
![Step Functions ワークフロー図の例。](images/step-functions-example.png)
Step Functions のコンソールでは、アプリケーションのワークフローを視覚化、編集、デバッグできます。ワークフローの各ステップの状態を調べて、アプリケーションが期待どおりに順番に実行されていることを確認できます。
ユースケースに応じて、Step Functions に Lambda などの AWS サービスを呼び出してタスクを実行できます。などの Step Functions コントロール AWS サービス AWS Glueを使用して、抽出、変換、ロードワークフローを作成できます。また、手動による介入が必要なアプリケーション用に実行時間が長い自動化されたワークフローを作成することもできます。
Step Functions が利用可能な AWS リージョンの完全なリストについては、AWS 「リージョン表
Step Functions の使用方法について説明します。
Step Functions の使用方法については、 AWS Step Functions ワークショップ
Standard ワークフロータイプと Express ワークフロータイプ
Step Functions には 2 つのワークフロータイプがあります。
-
標準ワークフローは、実行履歴と視覚的なデバッグが表示されるため、長時間実行される監査可能なワークフローに最適です。
標準ワークフローは、厳密に 1 回だけワークフローを実行し、最大 1 年間実行できます。つまり、標準ワークフローの各ステップは 1 回だけ実行されます。
-
Express ワークフローは、ストリーミングデータ処理や IoT データインジェストなどのワークロードに最適です high-event-rate。
Express ワークフローにはat-least-onceワークフロー実行があり、最大 5 分間実行できます。つまり、Express ワークフローの 1 つ以上のステップが複数回実行される可能性があり、ワークフロー内の各ステップは少なくとも 1 回実行されます。
Standard ワークフロー | Express ワークフロー |
---|---|
毎秒 2,000 の実行レート | 毎秒 100,000 の実行レート |
毎秒 4,000 のステート移行レート | ほぼ無制限のステート移行レート |
ステート移行別の価格設定 | 実行回数および実行期間別の価格設定 |
実行履歴と視覚的なデバッグの表示 | ログレベルに基づいて実行履歴とビジュアルデバッグを表示する |
Step Functions で実行履歴を表示する |
実行履歴を に送信する CloudWatch |
すべての サービスとの統合をサポートします。 一部の サービスとの最適化された統合をサポートします。 |
すべての サービスとの統合をサポートします。 |
すべてのサービスのリクエストレスポンスパターンをサポート 特定のサービスでジョブの実行やコールバックの待機パターンをサポート (詳細については、次のセクションを参照) |
すべてのサービスのリクエストレスポンスパターンをサポート |
Step Functions の料金とワークフロータイプの選択の詳細については、以下を参照してください。
他の のサービスとの統合
Step Functions は複数の AWS サービスと統合されます。他の AWS サービスを呼び出すには、次の 2 つの統合タイプを使用できます。
-
AWS SDK 統合により、ステートマシンから任意の AWS サービスを直接呼び出すことができ、何千ものAPIアクションにアクセスできます。
-
最適化統合では、ステートマシンでこれらのサービスを使用するためのカスタムオプションが提供されます。
Step Functions を他の サービスと組み合わせるには、3 つのサービス統合パターンがあります。
-
サービスを呼び出し、HTTPレスポンスを取得した後、Step Functions を次の状態に移行させます。
-
サービスを呼び出し、ジョブが完了するまで Step Functions が待機するようにします。
-
タスクトークン (.waitForTaskToken) によるコールバックを待つ
タスクトークンでサービスを呼び出し、タスクトークンがコールバックとともに返されるまで Step Functions を待機させます。
標準ワークフローと Express ワークフローは、同じ統合をサポートしますが、同じ統合パターン はサポートしません。
Express ワークフローはリクエストレスポンス をサポートしますが、ジョブの実行 (.sync) またはコールバックの待機 (.Token) はサポートしていません。 waitForTask
詳細については、「Step Functions でのワークフロータイプの選択」を参照してください。
Step Functions でサポートされている AWS SDK統合
サービス | レスポンスのリクエスト | ジョブの実行 (.sync) | コールバックまで待機 (.waitForTaskToken) |
---|---|---|---|
200 を超えるサービス | Standard と Express | サポートされません | 標準 |
Step Functions でサポートされている最適化された統合
サービス | レスポンスのリクエスト | ジョブの実行 (.sync) | コールバックまで待機 (.waitForTaskToken) |
---|---|---|---|
Amazon API Gateway | Standard と Express | サポートされません | 標準 |
Amazon Athena | Standard と Express | 標準 | サポートされません |
AWS Batch | Standard と Express | 標準 | サポートされません |
Amazon Bedrock | Standard と Express | 標準 | 標準 |
AWS CodeBuild | Standard と Express | 標準 | サポートされません |
Amazon DynamoDB | Standard と Express | サポートされません | サポートされません |
Amazon ECS/Fargate | Standard と Express | 標準 | 標準 |
Amazon EKS | Standard と Express | 標準 | 標準 |
Amazon EMR | Standard と Express | 標準 | サポートされません |
Amazon EMR on EKS | Standard と Express | 標準 | サポートされません |
Amazon EMR Serverless | Standard と Express | 標準 | サポートされません |
Amazon EventBridge | Standard と Express | サポートされません | 標準 |
AWS Glue | Standard と Express | 標準 | サポートされません |
AWS Glue DataBrew | Standard と Express | 標準 | サポートされません |
AWS Lambda | Standard と Express | サポートされません | 標準 |
AWS Elemental MediaConvert | Standard と Express | 標準 | サポートされません |
Amazon SageMaker | Standard と Express | 標準 | サポートされません |
Amazon SNS | Standard と Express | サポートされません | 標準 |
Amazon SQS | Standard と Express | サポートされません | 標準 |
AWS Step Functions | Standard と Express | 標準 | 標準 |
ワークフローのユースケースの例
Step Functions はアプリケーションのコンポーネントとロジックを管理するため、コードの書き込みを減らし、アプリケーションの迅速な構築と更新に集中することができます。次の図は、Step Functions ワークフローの 6 つのユースケースを示しています。
![次のテキストで説明する 6 つの一般的なワークフローユースケースの視覚的な例。](images/use-case-examples.png)
-
タスクのオーケストレーション – 一連のタスクまたはステップを特定の順序でオーケストレーションするワークフローを作成できます。例えば、タスク A は、タスク B の別の Lambda 関数の入力を提供する Lambda 関数である場合があります。 ワークフローの最後のステップで、最終結果が得られます。
-
データに基づいてタスクを選択する –
Choice
状態を使用して、Step Functions に状態の入力に基づいて決定させることができます。例えば、顧客がクレジット制限の引き上げをリクエストするとします。リクエストが事前承認した顧客のクレジット上限を超える場合は、Step Functions から顧客のリクエストをマネージャーに送信してサインオフを求めることができます。リクエストが事前承認した顧客のクレジット上限を下回っている場合は、Step Functions でリクエストを自動的に承認することができます。 -
エラー処理 (
Retry
/Catch
) – 失敗したタスクを再試行したり、失敗したタスクをキャッチして代替ステップを自動的に実行したりできます。例えば、顧客がユーザー名をリクエストした後、検証サービスへの最初の呼び出しが失敗する可能性があるため、ワークフローはリクエストを再試行することがあります。2 番目のリクエストが成功すると、ワークフローを続行できます。
または、顧客が無効または使用できないユーザー名をリクエストした場合、
Catch
ステートメントによって代替ユーザー名を提案する Step Functions ワークフローステップが発生する可能性があります。Retry
および の例についてはCatch
、「」を参照してくださいStep Functions ワークフローでの状態エラーの処理。 -
ヒューマンインザループ – Step Functions は、ワークフローに人間による承認ステップを含めることができます。例えば、ある銀行の顧客が友達に資金を送信しようとしたとします。コールバックとタスクトークン を使用すると、顧客の友達が転送を確認するまで Step Functions を待機させることができ、Step Functions はワークフローを続行して、転送が完了したことを銀行の顧客に通知します。
例については、Amazon 、Amazon SQS、SNSおよび Lambda を使用してコールバックパターンの例を作成するを参照してください。
-
並列処理 — Step Functions は
Parallel
状態を使用して入力を並列処理できます。例えば、視聴者が複数のデバイスで動画を視聴できるように、動画ファイルを複数のディスプレイ解像度に変換する必要がある場合があります。ワークフローでは、元のビデオファイルを複数の Lambda 関数に送信したり、最適化された AWS Elemental MediaConvert 統合を使用してビデオを複数のディスプレイ解像度に同時に処理したりできます。 -
動的並列処理 — Step Functions は、
Map
状態を使用して、データセット内の各項目に対して一連のワークフローステップを実行できます。イテレーションは並行して実行されるため、データセットを迅速に処理できます。例えば、顧客が 30 個のアイテムを注文する場合、システムは同じワークフローを適用して各アイテムを配送用に準備する必要があります。すべてのアイテムが収集され、配送用にパッケージ化されたら、次のステップとして、追跡情報が記載された確認 E メールを顧客にすばやく送信する場合があります。スターターテンプレートの例については、「」を参照してくださいマップを使用してデータを動的に処理する。