翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
サブスクリプションの Amazon SNS デッドレターキューを設定する
デッドレターキューは、Amazon SNS サブスクリプションが受信者に正常に配信できないメッセージの送信先としての Amazon SQS キューです。クライアントエラーまたはサーバーエラーが原因で配信できないメッセージは、詳細な分析や再処理のためにデッドレターキューに保持されます。詳細については、「Amazon SNS デッドレターキュー」および「Amazon SNS メッセージ配信の再試行」を参照してください。
このページでは AWS マネジメントコンソール、、 AWS SDK、 AWS CLI、および CloudFormation を使用して、Amazon SNS サブスクリプションのデッドレターキューを設定する方法を示します。
注記
FIFO トピックでは、Amazon SNS サブスクリプションのデッドレターキューとして Amazon SQS キューを使用できます。FIFO トピックサブスクリプションでは FIFO キューを使用し、標準トピックサブスクリプションでは標準キューを使用します。
前提条件
デッドレターキューを設定するには、次の前提条件を満たしている必要があります。
-
MyTopicという名前で Amazon SNS トピックを作成する。 -
MyEndpointという名前で Amazon SQS キューを作成し、Amazon SNS サブスクリプションのエンドポイントとして使用します。 -
(スキップ) CloudFormationキューをトピックにサブスクライブします。
-
MyDeadLetterQueueという名前で Amazon SQS キューを作成し、Amazon SNS サブスクリプションのデッドレターキューとして使用します。 -
Amazon SQS API アクションへのアクセスを Amazon SNS プリンシパルに付与するには、
MyDeadLetterQueueに次のキューポリシーを設定します。
を使用して Amazon SNS サブスクリプションのデッドレターキューを設定するには AWS マネジメントコンソール
このチュートリアルを開始する前に、次の前提条件を完了してください。
-
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 サブスクリプションのデッドレターキューを設定するには 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" } } } } } -
CloudFormation コンソール
にサインインします。 -
[テンプレートの選択] ページで、[テンプレートを Amazon S3 にアップロード] を選択した後、
MyDeadLetterQueue.jsonファイルを選択し、次に [次へ] を選びます。 -
[詳細の指定] ページで、[スタック名] に
MyDeadLetterQueueを入力してから、[次へ] を選択します。 -
[オプション] ページで、[次へ] を選択します。
-
[Review] ページで、[作成] を選択します。
CloudFormation は
MyDeadLetterQueueスタックの作成を開始し、CREATE_IN_PROGRESS ステータスを表示します。プロセスが完了すると、 は CREATE_COMPLETE ステータス CloudFormation を表示します。