Step Functions で Map 状態を持つキューのデータを処理する
このサンプルワークフローでは、Map 状態のワークフロー 状態はキューからのデータを処理し、サブスクライバーにメッセージを送信してデータベースに保存します。
Step Functions は、最適化された統合を使用して Amazon SQS キューからのメッセージをプルします。メッセージが利用可能になると、Choice 状態は処理のために JSON メッセージの配列を マップ 状態に渡します。メッセージごとに、ステートマシンはメッセージを DynamoDB に書き込み、キューからメッセージを削除し、Amazon SNS トピックにメッセージを発行します。
ステップ 1: ステートマシンを作成する
-
Step Functions コンソール
を開き、[ステートマシンの作成] を選択します。 -
[テンプレートから作成] を選択し、関連するスターターテンプレートを見つけます。[次へ] を選択して続行します。
-
テンプレートの使用方法を選択します。
-
デモの実行 – 読み取り専用のステートマシンを作成します。確認後、ワークフローとすべての関連リソースを作成できます。
-
その上に構築する – 編集可能なワークフロー定義が提供され、内容を確認・カスタマイズし、独自のリソースでデプロイできます (関数やキューなどの関連リソースは自動的には作成されません)。
-
-
[テンプレートの使用] を選択して選択を続行します。
注記
アカウントにデプロイされたサービスには、Standard 料金が適用されます。
ステップ 2: Amazon SNS トピックを登録する
ヒント
ステートマシンを実行する前に、Amazon SNS トピックをサブスクライブし、Amazon SQS キューに項目を追加します。
-
[Amazon SNS コンソール]
を開きます。 -
[トピック] を選択し、サンプルプロジェクトで作成されたトピックを見つけます。
-
[サブスクリプションの作成] 画面の [プロトコル] で、[E メール] を選択します。
-
[エンドポイント] で、トピックにサブスクライブする E メールアドレスを入力します。
-
[Create subscription] を選択してください。
-
E メールのサブスクリプションを確認して、サブスクリプションをアクティブ化します。
ステップ 3: Amazon SQS キューにメッセージを追加する
-
Amazon SQS コンソール
を開きます。 -
サンプルプロジェクトで作成されたキューを選択します。
-
[メッセージを送受信] を選択し、メッセージを入力して、[メッセージの送信] を選択します。このステップを繰り返して、キューに複数のメッセージを追加します。
ステップ 4: ステートマシンを実行する
ヒント
Amazon SNS のキューは結果整合性があります。ステートマシンを実行する前に、キューにメッセージを送信してから数分待つ必要がある場合があります。
[デモの実行] オプションを選択した場合、すべての関連リソースがデプロイされ、実行準備が整います。[その上に構築する] オプションを選択した場合は、プレースホルダー値の設定や、カスタムワークフローの実行に必要な追加リソースの作成が必要になることがあります。
[Deploy and run] (デプロイと実行) を選択します。
CloudFormation スタックがデプロイされるのを待ちます。これには最大 10 分かかることがあります。
[実行を開始] オプションが表示されたら、[入力] を確認し、[実行を開始] を選択します。
お疲れ様でした。
これで、ステートマシンのデモが実行されます。グラフビューでステートを選択すると、入力、出力、変数、定義、イベントを確認できます。