Step Functions で Map 状態を持つキューのデータを処理する - AWS Step Functions

Step Functions で Map 状態を持つキューのデータを処理する

このサンプルワークフローでは、Map 状態のワークフロー 状態はキューからのデータを処理し、サブスクライバーにメッセージを送信してデータベースに保存します。

Step Functions は、最適化された統合を使用して Amazon SQS キューからのメッセージをプルします。メッセージが利用可能になると、Choice 状態は処理のために JSON メッセージの配列を マップ 状態に渡します。メッセージごとに、ステートマシンはメッセージを DynamoDB に書き込み、キューからメッセージを削除し、Amazon SNS トピックにメッセージを発行します。

ステップ 1: ステートマシンを作成する

  1. Step Functions コンソールを開き、[ステートマシンの作成] を選択します。

  2. [テンプレートから作成] を選択し、関連するスターターテンプレートを見つけます。[次へ] を選択して続行します。

  3. テンプレートの使用方法を選択します。

    1. デモの実行 – 読み取り専用のステートマシンを作成します。確認後、ワークフローとすべての関連リソースを作成できます。

    2. その上に構築する – 編集可能なワークフロー定義が提供され、内容を確認・カスタマイズし、独自のリソースでデプロイできます (関数やキューなどの関連リソースは自動的には作成されません)。

  4. [テンプレートの使用] を選択して選択を続行します。

    注記

    アカウントにデプロイされたサービスには、Standard 料金が適用されます。

ステップ 2: Amazon SNS トピックを登録する

ヒント

ステートマシンを実行するに、Amazon SNS トピックをサブスクライブし、Amazon SQS キューに項目を追加します。

  1. [Amazon SNS コンソール] を開きます。

  2. [トピック] を選択し、サンプルプロジェクトで作成されたトピックを見つけます。

  3. [サブスクリプションの作成] 画面の [プロトコル] で、[E メール] を選択します。

  4. [エンドポイント] で、トピックにサブスクライブする E メールアドレスを入力します。

  5. [Create subscription] を選択してください。

  6. E メールのサブスクリプションを確認して、サブスクリプションをアクティブ化します。

ステップ 3: Amazon SQS キューにメッセージを追加する

  1. Amazon SQS コンソール を開きます。

  2. サンプルプロジェクトで作成されたキューを選択します。

  3. [メッセージを送受信] を選択し、メッセージを入力して、[メッセージの送信] を選択します。このステップを繰り返して、キューに複数のメッセージを追加します。

ステップ 4: ステートマシンを実行する

ヒント

Amazon SNS のキューは結果整合性があります。ステートマシンを実行する前に、キューにメッセージを送信してから数分待つ必要がある場合があります。

[デモの実行] オプションを選択した場合、すべての関連リソースがデプロイされ、実行準備が整います。[その上に構築する] オプションを選択した場合は、プレースホルダー値の設定や、カスタムワークフローの実行に必要な追加リソースの作成が必要になることがあります。

  1. [Deploy and run] (デプロイと実行) を選択します。

  2. CloudFormation スタックがデプロイされるのを待ちます。これには最大 10 分かかることがあります。

  3. [実行を開始] オプションが表示されたら、[入力] を確認し、[実行を開始] を選択します。

お疲れ様でした。

これで、ステートマシンのデモが実行されます。グラフビューでステートを選択すると、入力、出力、変数、定義、イベントを確認できます。