翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step Functions を使用したワークフローの開発
Step Functions コンソールと Workflow Studio ビジュアルエディタでワークフローの構築を開始することをお勧めします。空白のキャンバスから開始することも、一般的なシナリオではスターターテンプレートを選択することもできます。
ワークフローを構築するには、次のタスクが必要です。
-
ワークフローの定義
-
ワークフローの実行とデバッグ
-
ワークフローのデプロイ
Amazon States Language でステートマシンを定義します。Amazon States Language 定義は手動で作成できますが、Workflow Studio はチュートリアルで紹介されます。Workflow Studio を使用すると、マシン定義の定義、ステップの視覚化と編集、ワークフローの実行とデバッグ、Step Functions コンソール内からのすべての結果の表示を行うことができます。
から多くの Step Functions 機能を使用することもできます。 AWS Command Line Interface (AWS CLI)。 例えば、ステートマシンを作成し、既存のステートマシンを一覧表示できます。Step Functions コマンドは、 AWS CLI は、実行の開始と管理、アクティビティのポーリング、タスクハートビートの記録などを行います。Step Functions コマンドの完全なリスト、使用可能な引数の説明、およびそれらの使用例については、「」を参照してください。 AWS CLI コマンドリファレンス 。 AWS CLI コマンドリファレンス
AWS CLI コマンドは Amazon States Language に厳密に従うため、 AWS CLI Step Functions APIアクションについて説明します。既存のAPI知識を使用してコードをプロトタイプ化したり、コマンドラインから Step Functions アクションを実行したりすることもできます。
ステートマシン定義の検証
を使用してステートマシンAPIを検証し、ワークフローを作成する前に潜在的な問題を見つけることができます。
ワークフローの検証の詳細については、Step Functions APIリファレンスValidateStateMachineDefinitionの「」を参照してください。
最小限のセットアップを開始するには、Lambda ステートマシンの作成チュートリアルに従います。このチュートリアルでは、Lambda 関数を呼び出す 1 つのステップでワークフローを定義し、ワークフローを実行して結果を表示する方法を示します。
ワークフローの定義
ワークフロー開発の最初のステップは、Amazon States Language でステップを定義することです。設定とツールに応じて、JSON、、YAMLまたは で Step Functions ステートマシンを文字列化された Amazon States Language (ASL) 定義として定義できます。
次の表は、ツールによる ASLベースの定義形式のサポートを示しています。
AWS ツール | サポートされている形式 (複数可) |
---|---|
Step Functions コンソール | JSON |
HTTPS サービス API | 文字列 ASL |
AWS CLI | 文字列 ASL |
Step Functions Local | 文字列 ASL |
AWS Toolkit for Visual Studio Code | JSON, YAML |
AWS SAM | JSON, YAML |
AWS CloudFormation | JSON、YAML、文字列 ASL |
YAML テンプレートのステートマシン定義の 1 行のコメントは、作成されたリソースの定義には転送されません。コメントを保持する必要がある場合は、ステートマシン定義内で Comment
プロパティを使用する必要があります。詳細については、ステートマシン構造 を参照してください。
で AWS CloudFormation また、 AWS SAMでは、ステートマシンの定義を Amazon S3 (JSON または YAML形式) にアップロードし、テンプレートに定義の Amazon S3 の場所を指定できます。詳細については、AWS:::StepFunctions:StateMachine S3Location ページを参照してください。
次の例 AWS CloudFormation テンプレートは、異なる入力形式を使用して同じステートマシン定義を提供する方法を示しています。
を使用してワークフローを開発する AWS SDKs
Step Functions は でサポートされています。 AWS SDKs for Java、.NET、Ruby、PHP、Python (Boto 3) JavaScript、、Go、C++。これらは、複数のプログラミング言語で Step Functions HTTPSAPIアクションを使用する便利な方法SDKsを提供します。これらのSDKライブラリによって公開されるAPIアクションを使用して、ステートマシン、アクティビティ、またはステートマシンスターターを開発できます。また、これらのライブラリを使用して可視性オペレーションにアクセスし、独自の Step Functions のモニタリングおよびレポートツールを開発できます。現在の のリファレンスドキュメントを参照してください。 AWS SDKs および Tools for Amazon Web Services
HTTPS リクエストによるワークフローの開発
Step Functions は、HTTPSリクエストを通じてアクセス可能なサービスオペレーションを提供します。これらのオペレーションを使用して、独自のライブラリから Step Functions と直接通信できます。サービスAPIアクションを使用して、ステートマシン、ワーカー、またはステートマシンスターターを開発できます。API アクションを通じて可視性オペレーションにアクセスして、独自のモニタリングおよびレポートツールを開発することもできます。詳細については、「」を参照してください。 AWS Step Functions API リファレンス 。
を使用してワークフローを開発する AWS Step Functions データサイエンス SDK
データサイエンティストは、 と Step Functions を使用して機械学習モデルを処理 SageMaker および公開するワークフローを作成できます。また、Python でオーケストレーションする複数ステップの機械学習ワークフローを作成することもできます。 AWS インフラストラクチャを大規模に。- AWS Step Functions データサイエンスは、Step Functions ワークフローを作成して呼び出すAPIことができる Python SDKを提供します。これらのワークフローは、Python および Jupyter ノートブックで直接管理および実行できます。詳細については、以下を参照してください。 AWS Github での Step Functions データサイエンスプロジェクト
ワークフローの実行とデバッグ
ワークフローは、コンソール、 API呼び出し (Lambda 関数など)、Amazon EventBridge やス EventBridge ケジューラ、別の Step Functions ステートマシンからの呼び出しなど、さまざまな方法で開始できます。ワークフローを実行すると、サードパーティーのサービスに接続して、 AWS SDKs、および実行中のデータを操作します。ステートマシンを通過する実行ステップとデータフローを実行およびデバッグするには、さまざまなツールがあります。以下のセクションでは、ワークフローを実行およびデバッグするための追加のリソースを提供します。
ステートマシンの実行を開始する方法の詳細については、「」を参照してくださいStep Functions でステートマシンの実行を開始する。
ワークフローを実行するエンドポイントを選択する
レイテンシーを減らし、要件を満たす場所にデータを保存するために、Step Functions はさまざまな のエンドポイントを提供します。 AWS リージョン。Step Functions の各エンドポイントは完全に独立しています。ステートマシンまたはアクティビティは、それが作成されたリージョン内にのみ存在します。あるリージョンで作成したステートマシンやアクティビティは、別のリージョンで作成されたステートマシンやアクティビティとデータや属性を共有しません。例えば、2 つの異なるリージョンに STATES-Flows-1
というステートマシンを登録できます。一方のリージョンの STATES-Flows-1
ステートマシンは、もう一方のリージョンの STATES-Flow-1
ステートマシンとはデータや属性を共有しません。Step Functions エンドポイントのリストについては、「」を参照してください。 AWS Step Functions のリージョンとエンドポイント AWS 全般のリファレンス.
ワークフロー内のデータフローを制御する
Step Functions コンソールのデータフローシミュレータInputPath
、、、Parameters
、 などのデータの処理に使用する各フィールドをシミュレートできますResultSelector
OutputPath
ResultPath
。詳細については、データフローシミュレーターを使用して Step Functions でデータフローをテストする を参照してください。
Step Functions のローカル開発バージョン
テストと開発の目的で、ローカルマシンに Step Functions をインストールして実行するオプションがあります。Step Functions のローカルバージョンは を呼び出すことができます AWS Lambda 関数、両方 AWS ローカルで実行する場合は、 および 。サポートされている他の を調整することもできます。 AWS のサービス。詳細については、「Step Functions でステートマシンをローカルでテストする」を参照してください。
VS Code によるローカルおよびリモート開発
VS Code を使用してリモートステートマシンとやり取りし、ステートマシンをローカルで開発することもできます。ステートマシンの作成や更新、既存のステートマシンの一覧表示、ステートマシンの実行およびダウンロードを行うことができます。VS Code を使用して、テンプレートから新しいステートマシンを作成したり、ステートマシンを可視化したり、コードスニペット、コード補完、コード検証を行ったりすることもできます。詳細については、「」を参照してください。 AWS Toolkit for Visual Studio Code ユーザーガイド
ワークフローのデプロイ
ワークフローを定義してデバッグしたら、Infrastructure as Code フレームワークを使用してデプロイすることをお勧めします。ステートマシンは、次のようなさまざまな IaC オプションを使用してデプロイできます。 AWS Serverless Application Model, AWS CloudFormation, AWS CDK、、Terraform。
- AWS Serverless Application Model
以下を使用できます..。 AWS Serverless Application Model Step Functions を使用してワークフローを構築し、Lambda 関数APIsやイベントなど、サーバーレスアプリケーションを作成するために必要なインフラストラクチャをデプロイします。を使用することもできます。 AWS SAM CLI と を併用する AWS Toolkit for Visual Studio Code 統合エクスペリエンスの一部として。
詳細については、「AWS SAM を使用して Step Functions ワークフローを構築する」を参照してください。
- AWS CloudFormation
ステートマシンの定義は、 で直接使用できます。 AWS CloudFormation テンプレート。
詳細については、「使用 AWS CloudFormation Step Functions でワークフローを作成する」を参照してください。
- AWS CDK
Standard ステートマシンと Express ステートマシンは、 を使用して構築できます。 AWS CDK.
標準ワークフローを構築するには、「」を参照してくださいCDK を使用して標準ワークフローを作成する。
Express ワークフローを構築するには、「」を参照してくださいCDK を使用して Express ワークフローを作成する。
- Terraform
Terraform
by HashiCorp は、Infrastructure as Code (IaC) を使用してアプリケーションを構築するためのフレームワークです。Terraform では、ステートマシンを作成したり、インフラストラクチャデプロイのプレビューや再利用可能なテンプレートの作成などの機能を使用したりできます。Terraform テンプレートを使用すると、コードが小さなチャンクに分割されるため、コードを保守して再利用しやすくなります。 詳細については、「Terraform を使用して Step Functions にステートマシンをデプロイする」を参照してください。