翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
サブスクリプションの Amazon SNS デッドレターキューを設定する
デッドレターキューは、Amazon SNS サブスクリプションが受信者に正常に配信できないメッセージの送信先としての Amazon SQS キューです。クライアントエラーまたはサーバーエラーが原因で配信できないメッセージは、詳細な分析や再処理のためにデッドレターキューに保持されます。詳細については、Amazon SNS デッドレターキューおよびAmazon SNS メッセージ配信の再試行を参照してください。
このページでは AWS Management Console、、 AWS SDK、 AWS CLI、および AWS CloudFormation を使用して、Amazon SNS サブスクリプションのデッドレターキューを設定する方法について説明します。
注記
FIFO トピックでは、Amazon SNS サブスクリプションのデッドレターキューとして Amazon SQS キューを使用できます。FIFO トピックサブスクリプションでは FIFO キューを使用し、標準トピックサブスクリプションでは標準キューを使用します。
前提条件
デッドレターキューを設定するには、次の前提条件を満たしている必要があります。
-
MyTopic
という名前で Amazon SNS トピックを作成する。 -
MyEndpoint
という名前で Amazon SQS キューを作成し、Amazon SNS サブスクリプションのエンドポイントとして使用します。 -
(スキップ AWS CloudFormation) キューをトピックにサブスクライブします。
-
MyDeadLetterQueue
という名前で Amazon SQS キューを作成し、Amazon SNS サブスクリプションのデッドレターキューとして使用します。 -
Amazon SQS API アクションへのアクセスを Amazon SNS プリンシパルに付与するには、
MyDeadLetterQueue
に次のキューポリシーを設定します。{ "Statement": [{ "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "SQS:SendMessage", "Resource": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:sns:us-east-2:123456789012:MyTopic" } } }] }
を使用して Amazon SNS サブスクリプションのデッドレターキューを設定するには AWS Management Console
このチュートリアルを開始する前に、次の前提条件を完了してください。
-
Amazon SQS コンソール
にサインインします。 -
Amazon SQS キューを作成するか、既存のキューを使用して、キューの [詳細] タブでキューの ARN を確認します。次に例を示します。
arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue
Amazon SNS コンソール
にサインインします。 -
ナビゲーションパネルで、[サブスクリプション] を選択します。
-
[サブスクリプション] ページで、既存のサブスクリプションを選択し、[編集] を選択します。
-
[Edit
1234a567-bc89-012d-3e45-6fg7h890123i
] ページで、[再処理ポリシー (デッドレターキュー)] セクションを展開し、次の操作を行います。-
[有効] を選択します。
-
Amazon SQS キューの ARN を指定します。
-
-
[変更を保存] をクリックします。
デッドレターキューを使用するようにサブスクリプションが設定されます。
AWS SDK を使用して Amazon SNS サブスクリプションのデッドレターキューを設定するには
この例を実行する前に、必ずの前提条件を完了してください。
AWS SDK を使用するには、認証情報を使用して設定する必要があります。詳細については、「AWS SDK とツールのリファレンスガイド」の「共有設定ファイルと認証情報ファイル」を参照してください。
次の例は、SetSubscriptionAttributesRedrivePolicy
を使用する方法を説明しています。
を使用して Amazon SNS サブスクリプションのデッドレターキューを設定するには AWS CLI
このチュートリアルを開始する前に、次の前提条件を完了してください。
-
AWS CLIをインストールして設定します。詳細については、AWS Command Line Interface ユーザーガイドをご参照ください。
-
以下のコマンドを使用します。
aws sns set-subscription-attributes \ --subscription-arn arn:aws:sns:us-east-2:123456789012:MyEndpoint:1234a567-bc89-012d-3e45-6fg7h890123i --attribute-name RedrivePolicy --attribute-value "{\"deadLetterTargetArn\": \"arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue\"}"
を使用して Amazon SNS サブスクリプションのデッドレターキューを設定するには AWS CloudFormation
このチュートリアルを開始する前に、次の前提条件を完了してください。
-
次のJSON コードを
MyDeadLetterQueue.json
という名前のファイルにコピーします。{ "Resources": { "mySubscription": { "Type" : "AWS::SNS::Subscription", "Properties" : { "Protocol": "sqs", "Endpoint": "arn:aws:sqs:us-east-2:123456789012:MyEndpoint", "TopicArn": "arn:aws:sns:us-east-2:123456789012:MyTopic", "RedrivePolicy": { "deadLetterTargetArn": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue" } } } } }
-
AWS CloudFormation コンソール
にサインインします。 -
[テンプレートの選択] ページで、[テンプレートを Amazon S3 にアップロード] を選択した後、
MyDeadLetterQueue.json
ファイルを選択し、次に [次へ] を選びます。 -
[詳細の指定] ページで、[スタック名] に
MyDeadLetterQueue
を入力してから、[次へ] を選択します。 -
[オプション] ページで、[次へ] を選択します。
-
[Review] ページで、[作成] を選択します。
AWS CloudFormation は
MyDeadLetterQueue
スタックの作成を開始し、CREATE_IN_PROGRESS ステータスを表示します。プロセスが完了すると、 は CREATE_COMPLETE ステータス AWS CloudFormation を表示します。