Step Functions Express ワークフローを使用して Amazon SQS からの大量のメッセージを処理する
このサンプルプロジェクトでは、AWS Step Functions Express ワークフローを使用して、Amazon Simple Queue Service (Amazon SQS) などの大容量のイベントソースからのメッセージまたはデータを処理する方法を示します。Express ワークフローは非常に高いレートで開始できるため、大容量のイベント処理やストリーミングデータワークロードに最適です。
イベントソースからステートマシンを実行するために一般的に使用される 2 つの方法は次のとおりです。
-
イベントソースがイベントを発行するたびにステートマシンの実行をスタートするように Amazon CloudWatch Events ルールを設定します。詳細については、イベントでトリガーする CloudWatch Events ルールの作成を参照してください。
-
イベントソースを Lambda 関数にマッピングし、ステートマシンを実行する関数コードを記述します。AWS Lambda 関数は、イベントソースがイベントを発行するたびに呼び出され、ステートマシンの実行が開始されます。詳細については、Amazon SQS を使った AWS Lambda の使用を参照してください。
このサンプルプロジェクトでは、2 番目の方法を使用して Amazon SQS キューがメッセージを送信するたびに実行をスタートします。同様の設定を使用して、Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB、Amazon Kinesis などの他のイベントソースから Express ワークフローの実行をトリガーできます。
Express ワークフローと Step Functions サービス統合の詳細については、以下を参照してください。
ステップ 1: ステートマシンを作成する
-
Step Functions コンソール
を開き、[ステートマシンの作成] を選択します。 -
[テンプレートから作成] を選択し、関連するスターターテンプレートを見つけます。[次へ] を選択して続行します。
-
テンプレートの使用方法を選択します。
-
デモの実行 – 読み取り専用のステートマシンを作成します。確認後、ワークフローとすべての関連リソースを作成できます。
-
その上に構築する – 編集可能なワークフロー定義が提供され、内容を確認・カスタマイズし、独自のリソースでデプロイできます (関数やキューなどの関連リソースは自動的には作成されません)。
-
-
[テンプレートの使用] を選択して選択を続行します。
注記
アカウントにデプロイされたサービスには、Standard 料金が適用されます。
ステップ 2: ステートマシンの実行をトリガーする
-
[Amazon SQS console]
(Amazon SQS コンソール) を開きます。 -
サンプルプロジェクトで作成されたキューを選択します。
名前は Example-SQSQueue-wJalrXUtnFEMI のようになっています。
-
[Queue Actions] (キュー操作) リストで、[Send a Message] (メッセージの送信) を選択します。
-
コピーボタンを使用して次のメッセージをコピーし、[Send a Message] (メッセージの送信) ウィンドウに入力して、[Send Message] (メッセージの送信) を選択します。
注記
このサンプルメッセージでは、
input:行がページに合わせて改行されています。コピーボタンを使用するか、改行なしの 1 行として入力されていることを確認します。{ "input": "QW5kIGxpa2UgdGhlIGJhc2VsZXNzIGZhYnJpYyBvZiB0aGlzIHZpc2lvbiwgVGhlIGNsb3VkLWNhcHBlZCB0b3dlcnMsIHRoZSBnb3JnZW91cyBwYWxhY2VzLCBUaGUgc29sZW1uIHRlbXBsZXMsIHRoZSBncmVhdCBnbG9iZSBpdHNlbGbigJQgWWVhLCBhbGwgd2hpY2ggaXQgaW5oZXJpdOKAlHNoYWxsIGRpc3NvbHZlLCBBbmQgbGlrZSB0aGlzIGluc3Vic3RhbnRpYWwgcGFnZWFudCBmYWRlZCwgTGVhdmUgbm90IGEgcmFjayBiZWhpbmQuIFdlIGFyZSBzdWNoIHN0dWZmIEFzIGRyZWFtcyBhcmUgbWFkZSBvbiwgYW5kIG91ciBsaXR0bGUgbGlmZSBJcyByb3VuZGVkIHdpdGggYSBzbGVlcC4gU2lyLCBJIGFtIHZleGVkLiBCZWFyIHdpdGggbXkgd2Vha25lc3MuIE15IG9sZCBicmFpbiBpcyB0cm91YmxlZC4gQmUgbm90IGRpc3R1cmJlZCB3aXRoIG15IGluZmlybWl0eS4gSWYgeW91IGJlIHBsZWFzZWQsIHJldGlyZSBpbnRvIG15IGNlbGwgQW5kIHRoZXJlIHJlcG9zZS4gQSB0dXJuIG9yIHR3byBJ4oCZbGwgd2FsayBUbyBzdGlsbCBteSBiZWF0aW5nIG1pbmQu" } -
[Close] (閉じる) を選択します。
-
Step Functions コンソールを開きます。
-
Amazon CloudWatch Logs ロググループ
に移動して、ログを調べます。ロググループの名前は、example-ExpressLogGroup-wJalrXUtnFEMI のように表示されます。