Step Functions とは - AWS Step Functions

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

Step Functions とは

で AWS Step Functionsでは、 とも呼ばれるワークフローを作成してステートマシン、分散アプリケーションの構築、プロセスの自動化、マイクロサービスのオーケストレーション、データと機械学習パイプラインの作成を行うことができます。

Step Functions はステートマシンタスク に基づいています。Step Functions では、ステートマシンはワークフロー と呼ばれ、一連のイベント駆動型ステップです。ワークフローの各ステップは、状態 と呼ばれます。例えば、タスク状態は別の作業単位を表します。 AWS 別の を呼び出すなど、 サービスが実行する AWS のサービス または API。タスクを実行するワークフローを実行するインスタンスは、Step Functions で実行と呼ばれます。

ステートマシンタスクでの作業は、Step Functions の外部に存在するワーカーアクティビティである を使用して行うこともできます。

Step Functions ワークフロー図の例を示します。

Step Functions のコンソールでは、アプリケーションのワークフローを視覚化、編集、デバッグできます。ワークフローの各ステップの状態を調べて、アプリケーションが期待どおりに順番に実行されていることを確認できます。

ユースケースに応じて、Step Functions 呼び出しを行うことができます。 AWS タスクを実行するための Lambda などの サービス。Step Functions コントロールは AWS などの サービス AWS Glue、抽出、変換、ロードワークフローを作成します。また、手動による介入が必要なアプリケーション用に実行時間が長い自動化されたワークフローを作成することもできます。

の完全なリストについては、 AWS Step Functions が利用可能な リージョンについては、「」を参照してください。 AWS リージョンテーブル

Step Functions の使用方法について説明します。

Step Functions の使用方法については、「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 つのサービス統合パターン があります。

標準ワークフローと Express ワークフローは、同じ統合をサポートしますが、同じ統合パターン はサポートしません。

  • 標準ワークフローはリクエストレスポンスの統合をサポートします。特定の サービスは、ジョブの実行 (.sync) またはコールバックの待機 (.waitForTaskToken) をサポートし、場合によっては両方をサポートします。詳細については、次の最適化された統合の表を参照してください。

  • Express ワークフローは、リクエストレスポンス統合のみをサポートします。

2 つのタイプ間の決定については、「」を参照してくださいStep Functions でのワークフロータイプの選択

AWS SDK Step Functions での統合

統合された サービス レスポンスのリクエスト ジョブの実行 - .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 つの一般的なワークフローユースケースの視覚的な例。

  1. タスクのオーケストレーション – 一連のタスクまたはステップを特定の順序でオーケストレーションするワークフローを作成できます。例えば、タスク A は、タスク B の別の Lambda 関数の入力を提供する Lambda 関数である場合があります。 ワークフローの最後のステップで、最終結果が得られます。

  2. データに基づいてタスクを選択するChoice状態を使用して、Step Functions に状態の入力に基づいて決定させることができます。例えば、顧客がクレジット制限の引き上げをリクエストするとします。リクエストが事前承認した顧客のクレジット上限を超える場合は、Step Functions から顧客のリクエストをマネージャーに送信してサインオフを求めることができます。リクエストが事前承認した顧客のクレジット上限を下回っている場合は、Step Functions でリクエストを自動的に承認することができます。

  3. エラー処理 Retry / Catch) – 失敗したタスクを再試行したり、失敗したタスクをキャッチして代替ステップを自動的に実行したりできます。

    例えば、顧客がユーザー名をリクエストした後、検証サービスへの最初の呼び出しが失敗する可能性があるため、ワークフローはリクエストを再試行することがあります。2 番目のリクエストが成功すると、ワークフローを続行できます。

    または、顧客が無効または使用できないユーザー名をリクエストした場合、Catchステートメントによって、代替ユーザー名を提案する Step Functions ワークフローステップが発生する可能性があります。

    Retry および の例については、Catch「」を参照してくださいStep Functions ワークフローでのエラーの処理

  4. ヒューマンインザループ – Step Functions は、ワークフローにヒューマン承認ステップを含めることができます。例えば、ある銀行の顧客が友達に資金を送信しようとしたとします。コールバックとタスクトークン を使用すると、顧客の友達が転送を確認するまで Step Functions を待機させることができ、Step Functions はワークフローを続行して、転送が完了したことを銀行の顧客に通知します。

    例については、Amazon 、Amazon SQS、SNSおよび Lambda を使用してコールバックパターンの例を作成するを参照してください。

  5. データを並列ステップで処理する – Step Functions は Parallel状態を使用して入力データを並列ステップで処理できます。例えば、視聴者が複数のデバイスで動画を視聴できるように、動画ファイルを複数のディスプレイ解像度に変換する必要がある場合があります。ワークフローは、元のビデオファイルを複数の Lambda 関数に送信するか、最適化された を使用できます。 AWS Elemental MediaConvert 統合により、ビデオを複数のディスプレイ解像度に同時に処理できます。

  6. データ要素を動的に処理する – Step Functions は、 Map状態を使用して、データセット内の各項目に対して一連のワークフローステップを実行できます。イテレーションは並行して実行されるため、データセットを迅速に処理できます。例えば、顧客が 30 個のアイテムを注文する場合、システムは同じワークフローを適用して各アイテムを配送用に準備する必要があります。すべてのアイテムが収集され、配送用にパッケージ化されたら、次のステップとして、追跡情報が記載された確認 E メールを顧客にすばやく送信する場合があります。

    スターターテンプレートの例については、「」を参照してくださいマップを使用したデータの処理