Configuration d'une file d'attente de lettres mortes Amazon SNS 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 lettres mortes Amazon SNS pour un abonnement

Une file d'attente de lettres mortes est une file d'attente Amazon SQS qu'un abonnement Amazon SNS peut cibler pour les messages qui ne peuvent pas être remis 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 de plus amples informations, consultez Files d'attente de lettres mortes (DLQ)) d'Amazon SNS et Nouvelle tentative de distribution des messages Amazon SNS.

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

Note

Pour une rubrique FIFO, vous pouvez utiliser une file d'attente Amazon SQS en tant que file d'attente de lettres mortes pour l'abonnement Amazon SNS. Les abonnements aux rubriques FIFO utilisent des files d'attente FIFO, 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 rubrique Amazon SNS nommée MyTopic.

  2. Créez une file d'attente Amazon SQS nommée MyEndpoint, à utiliser comme point de terminaison pour l'abonnement Amazon SNS.

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

  4. Créez une autre file d'attente Amazon SQS nommée MyDeadLetterQueue, que vous utiliserez en tant que file d'attente de lettres mortes pour l'abonnement Amazon SNS.

  5. Pour accorder au principal Amazon SNS l'accès à l'action d'API Amazon SQS, définissez la politique de file d'attente suivante pour 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" } } }] }

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

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

  1. Connectez-vous à la console Amazon SQS.

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

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

  4. Dans le panneau de navigation, choisissez Abonnements.

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

  6. Sur la page Modifier 1234a567-bc89-012d-3e45-6fg7h890123i, développez la section Politique de redirection (file d'attente de lettres mortes), puis procédez comme suit :

    1. Choisissez Enabled (Activé).

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

  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 abonnement Amazon SNS à l'aide d'un SDK AWS

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 Les fichiers de configuration et d'informations d'identification partagés dans le AWS Guide de référence des kits SDK et des outils.

L'exemple de code suivant montre comment utiliserSetSubscriptionAttributesRedrivePolicy.

Java
Kit SDK pour Java 1.x
Note

Il y en a plus à ce sujet 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 abonnement Amazon SNS à 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 de plus amples informations, consultez le AWS Command Line Interface Guide de l’utilisateur.

  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 code JSON 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 statut CREATE_COMPLETE.