​Amazon S3 イベント発生時にステートマシンの実行をスタートする - AWS Step Functions

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

​Amazon S3 イベント発生時にステートマシンの実行をスタートする

以下のコマンドを実行することができます。AWS Step Functionsアマゾンに反応するステートマシン EventBridge または予定通りに。

このチュートリアルでは、Amazon のターゲットとしてステートマシンを設定する方法を説明します。 EventBridge ルール。このルールは、Amazon SSimple Storage Service (Amazon S3) バケットにファイルが追加されるとステートマシンの実行を開始します。

実際のアプリケーションでは、バケットに追加したファイルに対してオペレーションを時刻するステートマシンを起動できます。イメージやビデオファイルに対するサムネイルの作成や Amazon Rekognition 分析の実行などです。

このチュートリアルでは、HelloworldAmazon S3 バケットにファイルをアップロードすることによってステートマシン。次に、その実行の入力例を確認して、に送信される Amazon S3 イベント通知からの入力に含まれる情報を特定します。 EventBridge。

前提条件: ステートマシンの作成

ステートマシンを Amazon として設定する前に EventBridge target、ステートマシンを作成する必要があります。

  • 基本的なステートマシンを作成するには、入門チュートリアルを使用します。

  • 既に Helloworld ステートマシンがある場合は、次のステップに進みます。

ステップ 1: Amazon S3 バケットを作成する

今、あなたはHelloworldステートマシン、ファイルを保存する Amazon S3 バケットを作成する必要があります。このチュートリアルのステップ 3 で、バケットにファイルがアップロードされると EventBridge ステートマシンの実行がトリガーされます。

  1. に移動します。Amazon S3 コンソール]バケットを作成するをクリックして、ファイルを保存するバケットを作成し、Amazon S3 イベントルールをトリガーします。

  2. [Bucket name] (バケット名) を入力します (例: username-sfn-tutorial)。

    注記

    バケット名は必ず、Amazon S3 のすべての AWS リージョン内の既存バケット名の中で一意になるようにします。この名前を一意にするには、自分のユーザーネームを使用します。すべてのリソースは同じ AWS リージョン内に作成する必要があります。

  3. ページ上のすべてのデフォルト選択を保持し、バケットを作成する

ステップ 2: Amazon S3 イベント通知の有効化 EventBridge

Amazon S3 バケットを作成した後で、 EventBridge ファイルのアップロードなど、特定のイベントが S3 バケットで発生する。

  1. [Amazon S3 console] (Amazon S3 のコンソール) に移動します。

  2. [Buckets (バケット)] リストで、イベントを有効にするバケットの名前を選択します。

  3. [プロパティ] を選択します。

  4. ページを下にスクロールしてイベント通知]]]]]]編集アマゾン EventBridgeサブセクション。

  5. []Amazon に通知を送る EventBridge このバケットのすべてのイベント、選択On

  6. [変更の保存] をクリックします。

    注記

    有効にした後 EventBridge、変更が適用されるまで約 5 分かかります。

ステップ 3: Amazon を作成する EventBridge ルール

ステートマシンが用意され、Amazon S3 バケットを作成して、にイベント通知を送信するように設定したら EventBridge、作成する EventBridge ルール。

注記

設定する必要があります EventBridge 同じルールでAWSAmazon S3 バケットとしてのリージョン。

ルールを作成するには

  1. に移動します。アマゾン EventBridge コンソール、選択ルールの作成

  2. と入力します。[Name] (名前)あなたのルール (例えば、S3StepFunctions) をクリックし、オプションで a を入力します。説明ルールのために。

  3. ページ上のすべてのデフォルト選択を保持し、

  4. リポジトリの []イベントパターンを作成する]]]]]]]]]イベントパターン]]]]]]

    1. を使用する場合イベントソース、デフォルトの選択をそのままにします。

    2. を使用する場合AWSService、」Simple Storage Service (S3)

    3. を使用する場合イベントタイプ、選択Amazon S3 イベント通知

    4. 選択特定のオペレーション]オブジェクトの作成

    5. 選択名前別の特定のバケットで作成したバケット名を入力しますステップ 1(username-sfn-tutorial) をクリックしてファイルを保存します。

    6. [次へ] を選択します。

ターゲットを作成するには

  1. In (イン)ターゲット 1AWSサービスが選択されています。

  2. ターゲットを選択します。ドロップダウンリストで、Step Functions ステートマシン

  3. ステートマシンリストで、で作成したステートマシンを選択しますステップ 1(Helloworld).

  4. ページ上のすべてのデフォルト選択を保持し、

  5. 選択もう一度ルールの詳細を確認します。確認と作成ページで.

  6. [ルールの作成] を選択します。

    ルールが作成され、ルールページが表示されてすべてのAmazonがリストされます EventBridge ルール。

ステップ 4: ルールをテストする

すべて準備ができたので、Amazon S3 バケットへのファイルの追加をテストして、ステートマシンが実行された結果の入力を確認します。

  1. Amazon S3 バケットにファイルを追加します。

    に移動します。Amazon S3 コンソールで、ファイルを保存するために作成したバケットを選択します (username-sfn-tutorial)]アップロード

  2. たとえば、ファイルを追加するtest.png]アップロード

    これによりステートマシンの実行が起動され、AWS CloudTrail​ からの情報が入力として渡されます。

  3. ステートマシンの実行をチェックします。

    に移動します。Step Functions コンソール Amazon で使用されているステートマシンを選択します。 EventBridge ルール (Helloworld)

  4. そのステートマシンの細心の実行を選択して、実行入力セクションに追加します。

    この入力には、バケット名やオブジェクト名などの情報が含まれています。実際のユースケースでは、この入力を使用してステートマシンがそのオブジェクトに対してアクションを実行できます。

実行入力の例

以下の例に示しているのは、ステートマシン実行への一般的な入力です。

{ "version": "0", "id": "6c540ad4-0671-9974-6511-756fbd7771c3", "detail-type": "Object Created", "source": "aws.s3", "account": "123456789012", "time": "2022-02-19T01:36:58Z", "region": "us-east-2", "resources": [ "arn:aws:s3:::username-sfn-tutorial" ], "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" } }