翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
サブスクリプションの Amazon SNSデッドレターキューの設定
デッドレターキューは、Amazon SNSサブスクリプションがサブスクライバーに正常に配信できないメッセージを対象にできる Amazon SQSキューです。クライアントエラーまたはサーバーエラーが原因で配信できないメッセージは、詳細な分析や再処理のためにデッドレターキューに保持されます。詳細については、「Amazon SNSデッドレターキュー」および「Amazon SNS メッセージ配信の再試行」を参照してください。
このページでは AWS Management Console、、 AWS SDK、 AWS CLI、および を使用して Amazon SNSサブスクリプションのデッドレターキュー AWS CloudFormation を設定する方法を示します。
注記
FIFO トピック では、Amazon SQSサブスクリプションのデッドレターキューとして Amazon キューを使用できますSNS。FIFO トピックサブスクリプションはFIFOキューを使用し、標準トピックサブスクリプションは標準キューを使用します。
前提条件
デッドレターキューを設定するには、次の前提条件を満たしている必要があります。
-
という名前の Amazon SNSトピックを作成します
MyTopic
。 -
Amazon サブスクリプションのエンドポイントとして使用する という名前の Amazon SQSキューを作成します。
MyEndpoint
SNS -
( にスキップ AWS CloudFormation) キューをトピック にサブスクライブします。
-
という名前の別の Amazon SQSキューを作成し
MyDeadLetterQueue
、Amazon SNSサブスクリプションのデッドレターキューとして使用します。 -
Amazon SQSAPIアクションへのアクセスを 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コンソール
にサインインします。 -
ナビゲーションパネルで、[サブスクリプション] を選択します。
-
[サブスクリプション] ページで、既存のサブスクリプションを選択し、[編集] を選択します。
-
編集時
1234a567-bc89-012d-3e45-6fg7h890123i
ページを開き、Redrive ポリシー (デッドレターキュー) セクションを展開し、次の操作を行います。-
[有効] を選択します。
-
Amazon SQSキューARNの を指定します。
-
-
[Save changes] (変更の保存) をクリックします。
デッドレターキューを使用するようにサブスクリプションが設定されます。
を使用して Amazon SNSサブスクリプションのデッドレターキューを設定するには AWS SDK
この例を実行する前に、必ずの前提条件を完了してください。
を使用するには AWS SDK、認証情報を使用して設定する必要があります。詳細については、「」および「ツールリファレンスガイド」の「共有設定ファイルと認証情報ファイルAWS SDKs」を参照してください。
次の例は、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 を表示します。