Step Functions を使用して Amazon SQS キューにメッセージを送信する - AWS Step Functions

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

Step Functions を使用して Amazon SQS キューにメッセージを送信する

次の Amazon SQS API アクションと、Step Functions ワークフローの Task ステートコードの例を使用して、Amazon SQS キューにメッセージを送信できます。

Step Functions での AWSサービスとの統合については、 サービスとの統合「」および「」を参照してくださいStep Functions でサービス API にパラメータを渡す

Amazon SQS におけるメッセージの受信の詳細については、Amazon Simple Queue Service デベロッパーガイドメッセージの受信および削除を参照してください。

次のサンプルには、オプションの MessageAttributes を付けて Amazon Simple Queue Service (Amazon SQS) メッセージを送信する Task ステート (JSONata) が含まれています。

{ "StartAt": "Send to SQS", "States": { "Send to SQS": { "Type": "Task", "Resource": "arn:aws:states:::sqs:sendMessage", "Arguments": { "QueueUrl": "https://sqs.us-east-1.amazonaws.com/account-id/myQueue", "MessageBody": "{% $states.input.message %}", "MessageAttributes": { "my_attribute_no_1": { "DataType": "String", "StringValue": "attribute1" }, "my_attribute_no_2": { "DataType": "String", "StringValue": "attribute2" } } }, "End": true } } }

次のステートマシンには、Amazon SQS キューにパブリッシュしてから、タスクトークンが返されるのを待機する Task ステートが含まれています。「タスクトークンのコールバックまで待機する」を参照してください。

{ "StartAt":"Send message to SQS", "States":{ "Send message to SQS":{ "Type":"Task", "Resource":"arn:aws:states:::sqs:sendMessage.waitForTaskToken", "Arguments":{ "QueueUrl":"https://sqs.us-east-1.amazonaws.com/account-id/myQueue", "MessageBody":{ "Input" : "{% $states.input.message %}", "MyTaskToken" : "{% $states.context.Task.Token %}" } }, "End":true } } }

最適化された Amazon SQS API

Step Functions のパラメータは PascalCase で表されます。

ネイティブサービス API が、API アクション startSyncExecution などの camelCase である場合でも、StateMachineArn などの PascalCase でパラメータを指定します。

入力または結果データのクォータ

サービス間でデータを送受信する際、タスクの入力または結果の最大サイズは、UTF-8 でエンコードされた文字列で 256 KiB です。「ステートマシンの実行に関連するクォータ」を参照してください。

Amazon SQS を呼び出すための IAM ポリシー

次のサンプルテンプレートは、 がステートマシン定義のリソースに基づいて IAM ポリシーAWS Step Functionsを生成する方法を示しています。詳細については、「Step Functions が統合サービスの IAM ポリシーを生成する方法」および「Step Functions でサービス統合パターンを検出する」を参照してください。

静的リソース

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": [ "arn:aws:sqs:us-east-1:123456789012:myQueueName" ] } ] }

動的リソース

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": "*" } ] }