翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step Functions とは
で AWS Step Functionsでは、 とも呼ばれるワークフローを作成してステートマシン、分散アプリケーションの構築、プロセスの自動化、マイクロサービスのオーケストレーション、データと機械学習パイプラインの作成を行うことができます。
Step Functions はステートマシンとタスク に基づいています。Step Functions では、ステートマシンはワークフロー と呼ばれ、一連のイベント駆動型ステップです。ワークフローの各ステップは、状態 と呼ばれます。例えば、タスク状態は別の作業単位を表します。 AWS 別の を呼び出すなど、 サービスが実行する AWS のサービス または API。タスクを実行するワークフローを実行するインスタンスは、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 つのサービス統合パターン があります。
-
サービスを呼び出し、HTTPレスポンスを取得した後、Step Functions を次の状態に移行させます。
-
サービスを呼び出し、ジョブが完了するまで Step Functions が待機するようにします。
-
タスクトークン (.waitForTaskToken) によるコールバックを待つ
タスクトークンでサービスを呼び出し、タスクトークンがコールバックとともに返されるまで Step Functions を待機させます。
標準ワークフローと 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 つのユースケースを示しています。
-
タスクのオーケストレーション – 一連のタスクまたはステップを特定の順序でオーケストレーションするワークフローを作成できます。例えば、タスク 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 メールを顧客にすばやく送信する場合があります。スターターテンプレートの例については、「」を参照してくださいマップを使用したデータの処理。