AWS Step Functions とは - AWS Step Functions

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

AWS Step Functions とは

Step Functions は、AWS Lambda 関数と他の AWS サービスを組み合わせてビジネスクリティカルなアプリケーションを構築できるサーバーレスオーケストレーションサービスです。のグラフィカルコンソールから、アプリケーションのワークフローを一連のイベント駆動型のステップとして確認できます。Step Functions

Step Functions はステートマシンおよびタスクに基づいています。ステートマシンはワークフローです。タスクは、別の AWS サービスが実行する 1 単位の作業を表すワークフロー内の状態です。ワークフローの各ステップは状態です。

の組み込みコントロールを使用すると、ワークフローの各ステップの状態を調べて、アプリケーションが順を予期どおりに実行されることを確認します。Step Functionsユースケースに応じて、Step Functions に AWS などの Lambda のサービスを呼び出させてタスクを実行させることができます。機械学習モデルを処理して公開するワークフローを作成できます。Step FunctionsAWS などの のサービスを制御して、抽出、変換、およびロード (ETL) ワークフローを作成できます。AWS Glueまた、人間による操作を必要とするアプリケーションに対して、長時間実行される自動化ワークフローを作成することもできます。

標準ワークフローと Express ワークフロー

Step Functions には 2 つのワークフロータイプがあります。標準ワークフローは、1 回だけワークフロー実行され、最大 1 年間実行できます。Express ワークフローは、ワークフロー実行が最低 1 回実行され、最大 5 分間実行できます。実行は、タスクを実行するためのワークフローを実行するインスタンスです。標準ワークフローは、実行履歴とビジュアルデバッグを示すため、長時間実行され、監査可能なワークフローに最適です。Express ワークフローは、ストリーミングデータ処理や IoT データ取り込みなどの高イベントレートワークロードに最適です。

標準ワークフロー

  • 1 秒あたり 2,000 回の実行率

  • 1 秒あたり 4,000 回の状態遷移レート

  • 状態移行ごとの料金

  • 実行履歴とビジュアルデバッグを表示します。

  • すべてのサービス統合とパターンをサポートします。

Express ワークフロー

  • 1 秒あたり 100,000 回の実行レート

  • ほぼ無制限の状態遷移レート

  • 実行回数および期間あたりの料金

  • Amazon CloudWatch に実行履歴を送信します。

  • すべてのサービス統合とほとんどのパターンをサポートする

料金を含む標準ワークフローと Express ワークフローの詳細については、以下を参照してください。Step Functions

ユースケース

Step Functions はアプリケーションのコンポーネントとロジックを管理するため、コードを記述してアプリケーションを迅速に構築および更新することに集中できます。このセクションでは、Step Functions を使用するための一般的なユースケースについて説明します。

ユースケース #1: 関数のオーケストレーション


        チェーン

関数のグループ (ステップ) を特定の順序で実行するワークフローを作成します。Lambda1 つの Lambda 関数の出力が、次の Lambda 関数の入力に渡されます。ワークフローの最後のステップで結果を得られます。を使用すると、ワークフローの各ステップが互いにどのように相互作用するかを確認できるため、各ステップが意図した機能を実行できるようになります。Step Functions

関数のグループを使用してステートマシンを作成する方法を示すチュートリアルについては、以下を参照してください。

ユースケース #2: 分岐


          分岐

お客様がクレジット制限の引き上げをリクエストしました。状態を使用すると、Choice 状態の入力に基づいて Step Functions で決定を行うことができます。Choiceリクエストが、顧客の事前に承認されたクレジット制限を超えている場合、Step Functions からマネージャーにお客様のリクエストが送信されサインアップされるように設定できます。リクエストが顧客の事前に承認されたクレジット制限に達していない場合は、Step Functions にリクエストを自動的に承認させることができます。

ユースケース #3: エラー処理


          再試行/キャッチ

Retry

このユースケースでは、お客様はユーザー名をリクエストします。初めて、お客様のリクエストは失敗します。ステートメントを使用して、Retry に顧客のリクエストを再度試みさせることができます。Step Functions2 回目には、顧客のリクエストが成功します。

Catch

同様のユースケースでは、顧客が使用できないユーザー名をリクエストします。ステートメントを使用して、Catch が使用できるユーザー名を提案します。Step Functions顧客が利用可能なユーザー名を受け取ったら、Step Functions にワークフローの次のステップ「確認メールを送信する」に進むことができます。顧客が利用可能なユーザー名を使用しない場合、Step Functions はワークフローの別のステップであるサインアッププロセスを開始します。

および Retry ステートメントの詳細な例については、以下を参照してください。Catch

ユースケース #4: ループ内の人間


        チェーン

銀行アプリを使用して、顧客のいずれかが友人に費用を送信します。顧客は確認メールを待機します。コールバックとタスクトークンを使用すると、 は顧客の費用を送信し、顧客の友だちがそれを受け取ったときに報告するように Step Functions に指示できます。Lambda顧客の友だちが収益を受け取ったことが Lambda から報告されると、Step Functions はワークフローの次のステップである確認メールを送信できるようになります。

タスクトークンを含むコールバックを示すサンプルプロジェクトを見るには、以下を参照してください。

ユースケース #5: 並列処理


        並列処理

お客様はビデオファイルを 5 つの異なる表示解像度に変換するため、視聴者は複数のデバイスでビデオを見ることができます。状態を使用して、Parallel は動画ファイルを入力し、Step Functions はそれを同時に 5 つの表示解像度に処理できます。Lambda

ユースケース #6: 動的並列処理


        チェーン

顧客は 3 つのアイテムを注文し、各アイテムを配送用に準備する必要があります。各項目の可用性を確認し、各項目を収集して、各項目を配達用にパッケージ化します。状態を使用して、Map は各顧客の項目を並行して処理します。Step FunctionsLambdaお客様の商品がすべて配送用にパッケージ化されると、Step Functions はワークフローの次のステップに進みます。これは、追跡情報が含まれた確認メールをお客様に送信することです。

状態を使用して動的な並列処理を示すサンプルプロジェクトについては、以下を参照してください。Map

サービス統合

Step Functions は複数の AWS サービスと統合されています。をこれらのサービスと組み合わせるには、次のサービス統合パターンを使用します。Step Functions

レスポンスをリクエストする (デフォルト)

  • サービスを呼び出し、Step Functions が HTTP レスポンスを取得したら次の状態に進むことができるようにします。

ジョブの実行 (.sync)

  • サービスを呼び出し、ジョブが完了するまで Step Functions が待機するようにします。

タスクトークン (.waitForTaskToken) のあるコールバックを待機する

  • タスクトークンでサービスを呼び出し、タスクトークンがコールバックを返すまで Step Functions が待機するようにします。

次の表は、Step Functions でサポートされているすべてのサービス統合とサービス統合パターンを示しています。

Standard Workflows
サポートされるサービス統合
サービス リクエストレスポンス ジョブの実行 (.sync) コールバックまで待機 (.waitForTaskToken)
Lambda
AWS Batch
DynamoDB
Amazon ECS/AWS Fargate
Amazon SNS
Amazon SQS
AWS Glue
SageMaker
Amazon EMR
CodeBuild
Athena
Amazon EKS
API Gateway
AWS Step Functions
Express Workflows

サポートされているリージョン

ほとんどの AWS リージョンは Step Functions をサポートしています。が使用可能な AWS リージョンの詳細なリストについては、「Step Functions リージョン表」を参照してください。AWS

を初めて使用する方向けの情報Step Functions

を初めて使用する場合は、以下のトピックを参照してください。トピックは、Step Functions と他の Step Functions サービスとの組み合わせなど、Step Functions のさまざまな作業について理解するために役立ちます。AWS