とは?AWS Step Functions? - AWS Step Functions

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

とは?AWS Step Functions?

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

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

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

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

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

標準ワークフロー

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

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

  • 状態移行あたりの料金

  • 実行履歴と視覚的なデバッグを表示します

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

Express ワークフロー

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

  • ほぼ無制限の状態移行率

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

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

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

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

ユースケース

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

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


          チェーン

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

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

ユースケース 2: 分岐


          分岐

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

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


          再試行/キャッチ

Retry

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

Catch

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

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

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


          チェーン

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

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

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


          並列処理

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

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


          チェーン

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

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

サービス統合

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

レスポンスのリクエスト (デフォルト)

  • サービスを呼び出し、HTTP レスポンスを取得した後、次の状態Step Functionsに進みます。

ジョブの実行 (.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 Glue DataBrew
AWS Step Functions
Express Workflows

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

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

を初めて使用する場合 Step Functions

を初めて使用する場合はStep Functions、 と他の Step Functions のサービスStep Functionsを組み合わせる方法などAWS、 のさまざまな機能について、以下のトピックで理解することができます。