Configuration d'une file d'attente de SNS lettres mortes Amazon pour un abonnement - Amazon Simple Notification Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration d'une file d'attente de SNS lettres mortes Amazon pour un abonnement

Une file d'attente de lettres mortes est une SQS file d'attente Amazon qu'un SNS abonnement Amazon peut cibler pour les messages qui ne peuvent pas être envoyés aux abonnés avec succès. Les messages qui ne peuvent pas être remis en raison d'erreurs du client ou d'erreurs de serveur sont conservés dans la file d'attente de lettres mortes pour une analyse ou un retraitement ultérieur. Pour plus d’informations, consultez Files d'attente pour les SNS lettres mortes sur Amazon et Rétentatives de livraison de SNS messages Amazon.

Cette page explique comment vous pouvez utiliser le AWS Management Console, an AWS SDK AWS CLI, le et AWS CloudFormation pour configurer une file d'attente de lettres mortes pour un abonnement AmazonSNS.

Note

Pour un FIFOsujet, vous pouvez utiliser une file d'SQSattente Amazon comme file d'attente de lettres mortes pour l'abonnement AmazonSNS. FIFOles abonnements aux rubriques utilisent des FIFO files d'attente, tandis que les abonnements aux rubriques standard utilisent des files d'attente standard.

Prérequis

Avant de configurer une file d'attente de lettres mortes, remplissez les conditions préalables suivantes :

  1. Créez une SNS rubrique Amazon nomméeMyTopic.

  2. Créez une SQS file d'attente Amazon nomméeMyEndpoint, à utiliser comme point de terminaison pour l'SNSabonnement Amazon.

  3. (Ignorer AWS CloudFormation) Inscrivez la file d'attente au sujet.

  4. Créez une autre SQS file d'attente Amazon nomméeMyDeadLetterQueue, à utiliser comme file d'attente de lettres mortes pour l'abonnement AmazonSNS.

  5. Pour accorder à Amazon l'accès SNS principal à l'SQSAPIaction Amazon, définissez la politique de file d'attente suivante pourMyDeadLetterQueue.

    { "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" } } }] }

Pour configurer une file d'attente de lettres mortes pour un SNS abonnement Amazon à l'aide du AWS Management Console

Avant de commencer le tutoriel, assurez-vous que vous remplissez les conditions préalables.

  1. Connectez-vous à la SQSconsole Amazon.

  2. Créez une SQS file d'attente Amazon ou utilisez une file d'attente existante et notez le ARN nom de la file d'attente dans l'onglet Détails de la file d'attente, par exemple :

    arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue
  3. Connectez-vous à la SNSconsole Amazon.

  4. Dans le panneau de navigation, choisissez Abonnements.

  5. Sur la page Subscriptions (Abonnements), sélectionnez un abonnement existant, puis choisissez Edit (Modifier).

  6. À propos de l'édition 1234a567-bc89-012d-3e45-6fg7h890123ipage, développez la section Politique Redrive (file d'attente de lettres mortes), puis procédez comme suit :

    1. Choisissez Enabled (Activé).

    2. Spécifiez le ARN nom d'une SQS file d'attente Amazon.

  7. Sélectionnez Enregistrer les modifications.

    Votre abonnement est configuré pour utiliser une file d'attente de lettres mortes.

Pour configurer une file d'attente de lettres mortes pour un SNS abonnement Amazon à l'aide d'un AWS SDK

Avant d'exécuter cet exemple, assurez-vous de respecter les conditions préalables requises.

Pour utiliser un AWS SDK, vous devez le configurer avec vos informations d'identification. Pour plus d'informations, consultez la section Les fichiers de configuration et d'identification partagés dans le guide de référence AWS SDKs et Tools.

L'exemple de code suivant montre comment utiliserSetSubscriptionAttributesRedrivePolicy.

Java
SDKpour Java 1.x
Note

Il y en a plus sur GitHub. Trouvez l’exemple complet et découvrez comment le configurer et l’exécuter dans le référentiel d’exemples de code AWS.

// Specify the ARN of the Amazon SNS subscription. String subscriptionArn = "arn:aws:sns:us-east-2:123456789012:MyEndpoint:1234a567-bc89-012d-3e45-6fg7h890123i"; // Specify the ARN of the Amazon SQS queue to use as a dead-letter queue. String redrivePolicy = "{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue\"}"; // Set the specified Amazon SQS queue as a dead-letter queue // of the specified Amazon SNS subscription by setting the RedrivePolicy attribute. SetSubscriptionAttributesRequest request = new SetSubscriptionAttributesRequest() .withSubscriptionArn(subscriptionArn) .withAttributeName("RedrivePolicy") .withAttributeValue(redrivePolicy); sns.setSubscriptionAttributes(request);

Pour configurer une file d'attente de lettres mortes pour un SNS abonnement Amazon à l'aide du AWS CLI

Avant de commencer le tutoriel, assurez-vous que vous remplissez les conditions préalables.

  1. Installation et configuration de l' AWS CLI. Pour plus d’informations, consultez le Guide de l’utilisateur AWS Command Line Interface .

  2. Utilisez la commande suivante de l’.

    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\"}"

Pour configurer une file d'attente de lettres mortes pour un abonnement Amazon SNS à l'aide de AWS CloudFormation

Avant de commencer le tutoriel, assurez-vous que vous remplissez les conditions préalables.

  1. Copiez le JSON code suivant dans un fichier nommé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" } } } } }
  2. Connectez-vous à la console AWS CloudFormation.

  3. Sur la page Select Template (Sélectionner un modèle), choisissez Upload a template to Amazon S3 (Télécharger un modèle sur Amazon S3), puis votre fichier MyDeadLetterQueue.json, puis Next (Suivant).

  4. Sur la page Specify Details (Spécifier les détails), saisissez MyDeadLetterQueue comme Stack Name (Nom de pile), puis choisissez Next (Suivant).

  5. Dans la page Options, choisissez Next (Suivant).

  6. Sur la page Review (Vérification), choisissez Create (Créer).

    AWS CloudFormation commence à créer la MyDeadLetterQueue pile et affiche le statut CREATE_IN_ PROGRESS. Lorsque le processus est terminé, AWS CloudFormation affiche le COMPLETE statut CREATE_.