翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
イベントに応答して Step Functions ワークフローを開始する
Amazon EventBridge ルールによってターゲットとして Step Functions にルーティングされたイベントに応じて、AWS Step Functions ステートマシンを実行できます。
以下のチュートリアルでは、Amazon EventBridge ルールのターゲットとして、ステートマシンを設定する方法を説明します。ファイルが Amazon Simple Storage Service (Amazon S3) バケットに追加されるたびに、EventBridge ルールによってステートマシンが開始されます。
このアプローチの実例としては、バケットに追加された画像ファイルに対して Amazon Rekognition による分析を実行し、カテゴリ分けやキーワード割り当てを行うステートマシンが挙げられます。
このチュートリアルでは、Amazon S3 バケットにファイルをアップロードすることにより、Helloworld ステートマシンの実行を開始します。次に、その実行の入力例を確認して、EventBridge に配信される Amazon S3 イベント通知からの入力に含まれる情報を確認します。
前提条件: ステートマシンを作成する
Amazon EventBridge ターゲットとしてステートマシンを構成する前に、ステートマシンを作成する必要があります。
-
基本的なステートマシンを作成する場合は、「Lambda 関数を使用するステートマシンの作成」のチュートリアルを使用してください。
-
既に
Helloworldステートマシンがある場合は、次のステップに進みます。
ステップ 1: Amazon S3 バケットを作成する
Helloworld ステートマシンを作成したら、次に Amazon S3 バケットを作成する必要があります。このチュートリアルのステップ 3 で、バケットにファイルがアップロードされると、EventBridge によってステートマシンの実行をトリガーするようにルールを設定します。
-
Amazon S3 コンソール
に移動し、[バケットを作成] を選択してファイルを保存するバケットを作成し、Amazon S3 イベントルールをトリガーします。 -
[Bucket name] (バケット名) を入力します (例:
)。username-sfn-tutorial注記
バケット名は必ず、Amazon S3 のすべての AWS リージョン内の既存バケット名の中で一意になるようにします。この名前を一意にするには、自分の
ユーザーネームを使用します。すべてのリソースは同じ AWS リージョン内に作成する必要があります。 -
ページのデフォルトの選択をすべて維持して、[バケットを作成] を選択します。
ステップ 2: EventBridge で Amazon S3 イベント通知を有効にする
Amazon S3 バケットを作成したら、S3 バケットで特定のイベント (ファイルのアップロードなど) が発生したときにイベントを EventBridge に送信するように設定します。
-
Amazon S3 コンソール
に移動します。 -
[Buckets (バケット)] リストで、イベントを有効にするバケットの名前を選択します。
-
[プロパティ] を選択します。
-
ページを下にスクロールして [イベント通知] セクションを表示し、[Amazon EventBridge] サブセクションで [編集] を選択します。
-
[このバケット内のすべてのイベント用の Amazon EventBridge に通知を送信する] の下にある [On] を選択します。
-
[Save changes] (変更の保存) をクリックします。
注記
EventBridge を有効にすると、変更が適用されるまで約 5 分かかります。
ステップ 3: Amazon EventBridge ルールを作成する
ステートマシンの作成後に Amazon S3 バケットの追跡を作成したら、EventBridge ルールを作成します。
注記
Amazon S3 バケットと同じ AWS リージョンで EventBridge ルールを設定する必要があります。
ルールを作成するには
-
Amazon EventBridge コンソール
に移動して、[Create rule] (ルールの作成) を選択します。 ヒント
または、EventBridge コンソールのナビゲーションペインで、[バス] の [ルール] を選択し、次に [ルールの作成] を選択します。
-
ルールの [名前] (例:
) を入力し、(オプション) ルールの [説明] を入力します。S3Step Functions -
[イベントバス] と [ルールタイプ] は、デフォルト設定のままにします。
-
[次へ] を選択します。これにより、[イベントパターンを構築] ページが開きます。
-
[イベントパターン] セクションまでスクロールして、次の操作を行います。
-
[イベントソース] で、デフォルトの [AWS イベントまたは EventBridge パートナーイベント] を選択したままにします。
-
[AWS サービス] で、[Simple Storage Service (S3)] を選択します。
-
[イベントタイプ] には、[Amazon S3 イベント通知] を選択します。
-
[特定のイベント] を選択し、次に [オブジェクトの作成] を選択します。
-
[名前別の特定のバケット] を選択し、ステップ 1 で作成したファイルを保存するバケット名 (
) を入力します。username-sfn-tutorial -
[次へ] を選択します。これにより、[ターゲットを選択] ページが開きます。
-
ターゲットを作成するには
-
[ターゲット 1] では、デフォルトの [AWS サービス] を選択したままにします。
-
[ターゲットを選択] ドロップダウンリストで、[Step Functions ステートマシン] を選択します。
-
[ステートマシン] リストで、以前に作成したステートマシン (例:
Helloworld) を選択します。 -
ページのデフォルトの選択をすべて維持して、[次へ] を選択します。これにより、[タグを設定] ページが開きます。
-
[次へ] をもう一度選択します。これにより、[レビューして作成] ページが開きます。
-
ルールの詳細を確認し、ルールの作成 を選択します。
ルールが作成され、[Rules] (ルール) ページが表示されてすべての Amazon EventBridge ルールがリストされます。
ステップ 4: ルールをテストする
すべて準備ができたので、Amazon S3 バケットへのファイルの追加をテストして、ステートマシンが実行された結果の入力を確認します。
-
Amazon S3 バケットにファイルを追加します。
Amazon S3 コンソール
に移動して、ファイルを保存するために作成したバケット ( ) を選択し、[アップロード] を選択します。username-sfn-tutorial -
ファイル (例:
) を追加し、次に [アップロード] を選択します。test.pngこれによりステートマシンの実行が起動され、AWS CloudTrail からの情報が入力として渡されます。
-
ステートマシンの実行をチェックします。
Step Functions コンソール
に移動して、Amazon EventBridge ルールで使用されているステートマシン ( Helloworld) を選択します。 -
そのステートマシンの最新の実行を選択して、[実行の入力] セクションを展開します。
この入力には、バケット名やオブジェクト名などの情報が含まれています。実際のユースケースでは、この入力を使用してステートマシンがそのオブジェクトに対してアクションを実行できます。
実行入力の例
次の例では、ステートマシン実行への一般的な入力を示しています。
{ "version": "0", "id": "6c540ad4-0671-9974-6511-756fbd7771c3", "detail-type": "Object Created", "source": "aws.s3", "account": "123456789012", "time": "2023-06-23T23:45:48Z", "region": "us-east-2", "resources": [ "arn:aws:s3:::" ], "detail": { "version": "0", "bucket": { "name": "username-sfn-tutorial" }, "object": { "key": "test.png", "size": 800704, "etag": "f31d8546bb67845b4d3048cde533b937", "sequencer": "00621049BA9A8C712B" }, "request-id": "79104EXAMPLEB723", "requester": "123456789012", "source-ip-address": "200.0.100.11", "reason": "PutObject" } }username-sfn-tutorial