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.
Files d'attente pour les SNS lettres mortes sur Amazon
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 Configuration d'une file d'attente de SNS lettres mortes Amazon pour un abonnement et Rétentatives de livraison de SNS messages Amazon.
Note
L'SNSabonnement Amazon et la SQS file d'attente Amazon doivent se trouver sous le même AWS compte et dans la même région.
-
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.
Pour utiliser une SQS file d'attente Amazon cryptée comme file d'attente contenant des lettres mortes, vous devez utiliser une version personnalisée KMS dotée d'une politique clé qui accorde au SNS service Amazon l'accès principal aux AWS KMS API actions. Pour plus d'informations, consultez Sécurisation SNS des données Amazon grâce au chiffrement côté serveur ce guide et Protecting Amazon SQS Data Using Server-Side Encryption (SSE) ainsi AWS KMS que le manuel Amazon Simple Queue Service Developer Guide.
Rubriques
- Pourquoi les distributions de messages échouent-elles ?
- Fonctionnement des files d'attente de lettres mortes
- Comment les messages sont-ils déplacés dans une file d'attente de lettres mortes ?
- Comment puis-je déplacer des messages hors d'une file d'attente de lettres mortes ?
- Comment puis-je contrôler et consigner les files d'attente de lettres mortes ?
- Configuration d'une file d'attente de SNS lettres mortes Amazon pour un abonnement
Pourquoi les distributions de messages échouent-elles ?
En général, la livraison des messages échoue lorsqu'Amazon ne SNS parvient pas à accéder à un point de terminaison abonné en raison d'une erreur côté client ou côté serveur. Lorsqu'Amazon SNS reçoit une erreur côté client ou continue de recevoir une erreur côté serveur pour un message au-delà du nombre de tentatives spécifié par la politique de nouvelles tentatives correspondante, Amazon SNS rejette le message, sauf si une file d'attente de lettres mortes est jointe à l'abonnement. Les distributions qui échouent ne modifient pas le statut de vos abonnements. Pour de plus amples informations, consultez Rétentatives de livraison de SNS messages Amazon.
Erreurs côté du client
Des erreurs côté client peuvent se produire lorsque les métadonnées d'abonnement d'Amazon SNS sont périmées. Ces erreurs se produisent généralement lorsqu'un propriétaire supprime le point de terminaison (par exemple, une fonction Lambda abonnée à un sujet SNS Amazon) ou lorsqu'un propriétaire modifie la politique attachée au point de terminaison abonné de manière à empêcher SNS Amazon de transmettre des messages au point de terminaison. Amazon SNS ne réessaie pas la livraison du message qui échoue en raison d'une erreur côté client.
Erreurs côté serveur
Des erreurs côté serveur peuvent se produire lorsque le système responsable du point de terminaison abonné devient indisponible ou renvoie une exception indiquant qu'il ne peut pas traiter une demande valide provenant d'Amazon. SNS Lorsque des erreurs se produisent côté serveur, Amazon SNS tente à nouveau les livraisons ayant échoué en utilisant une fonction de temporisation linéaire ou exponentielle. Pour les erreurs côté serveur causées par des points de terminaison AWS gérés soutenus par Amazon ou Amazon retente la livraison jusqu'à 100 015 foisSQS, AWS Lambda sur SNS une période de 23 jours.
Les terminaux gérés par le client (tels queHTTP, SMTPSMS, ou mobile push) peuvent également provoquer des erreurs côté serveur. Amazon SNS tente également de relancer la livraison vers ces types de points de terminaison. Alors que les HTTP points de terminaison prennent en charge les politiques de relance définies par le client, Amazon SNS définit une politique de relance interne de 50 tentatives de livraison en 6 heures, pour les points de terminaison push mobiles et pour les points de terminaison SMTP push SMS mobiles.
Fonctionnement des files d'attente de lettres mortes
Une file d'attente de lettres mortes est associée à un SNS abonnement Amazon (plutôt qu'à un sujet) car les envois de messages se font au niveau de l'abonnement. Cela vous permet d'identifier plus facilement le point de terminaison cible d'origine pour chaque message.
Une file d'attente de lettres mortes associée à un SNS abonnement Amazon est une file d'attente Amazon SQS ordinaire. Pour de plus amples informations sur la période de rétention des messages, consultez Quotas liés aux messages dans le Guide du développeur Amazon Simple Queue Service. Vous pouvez modifier la période de conservation des messages à l'aide de l'SQSSetQueueAttributes
APIaction Amazon. Pour rendre vos applications plus résilientes, nous vous recommandons de fixer à 14 jours la période de rétention maximale pour les files d'attente de lettres mortes.
Comment les messages sont-ils déplacés dans une file d'attente de lettres mortes ?
Vos messages sont déplacés dans une file d'attente de lettres mortes à l'aide d'une politique de redirection. Une politique de redrive est un JSON objet qui fait référence à la file ARN d'attente de lettres mortes. L'deadLetterTargetArn
attribut spécifie leARN. Ils ARN doivent pointer vers une SQS file d'attente Amazon située dans Compte AWS la même région que votre SNS abonnement Amazon. Pour de plus amples informations, veuillez consulter Configuration d'une file d'attente de SNS lettres mortes Amazon pour un abonnement.
L'JSONobjet suivant est un exemple de politique de redrive, associé à un SNS abonnement.
{
"deadLetterTargetArn": "arn:aws:sqs:us-east-2:123456789012:MyDeadLetterQueue"
}
Comment puis-je déplacer des messages hors d'une file d'attente de lettres mortes ?
Vous pouvez déplacer les messages hors d'une file d'attente de lettres mortes de deux façons :
-
Évitez d'écrire sur Amazon SQS Consumer Logic : définissez votre file d'attente de lettres mortes comme source d'événements pour la fonction Lambda afin de vider votre file d'attente de lettres mortes.
-
Rédigez la logique du SQS consommateur Amazon : utilisez Amazon SQS API ou AWS CLI rédigez une logique de consommateur personnalisée pour interroger, traiter et supprimer les messages de la file d'attente de lettres mortes. AWS SDK
Comment puis-je contrôler et consigner les files d'attente de lettres mortes ?
Vous pouvez utiliser CloudWatch les statistiques Amazon pour surveiller les files d'attente de lettres mortes associées à vos abonnements Amazon. SNS Toutes les SQS files d'attente Amazon émettent CloudWatch des métriques à intervalles d'une minute. Pour plus d'informations, consultez la section Statistiques CloudWatch disponibles pour Amazon SQS dans le manuel Amazon Simple Queue Service Developer Guide. Tous les SNS abonnements Amazon comportant des files d'attente contenant des lettres mortes émettent également des statistiques. CloudWatch Pour de plus amples informations, veuillez consulter Surveillance des SNS sujets Amazon à l'aide de CloudWatch.
Pour être informé de l'activité dans vos files d'attente réservées aux lettres mortes, vous pouvez utiliser des CloudWatch métriques et des alarmes. La configuration d'une alarme pour la NumberOfMessagesSent
métrique n'est pas appropriée car cette métrique ne capture pas les messages envoyés à un DLQ suite de tentatives de traitement infructueuses. Utilisez plutôt la ApproximateNumberOfMessagesVisible
métrique, qui capture tous les messages actuellement disponibles dans leDLQ, y compris ceux déplacés en raison d'échecs de traitement.
Exemple de configuration CloudWatch d'alarme
-
Créez une CloudWatchalarme pour la
ApproximateNumberOfMessagesVisible
métrique. -
Réglez le seuil d'alarme sur 1 (ou sur une autre valeur appropriée en fonction de vos attentes et DLQ du trafic).
-
Spécifiez un SNS sujet Amazon pour être averti lorsque l'alarme se déclenche. Cette SNS rubrique Amazon peut envoyer votre notification d'alarme à n'importe quel type de terminal (adresse e-mail, numéro de téléphone ou application de téléavertisseur mobile).
Vous pouvez utiliser CloudWatch les journaux pour rechercher les exceptions à l'origine de l'échec de toute SNS livraison Amazon et de l'envoi de messages dans des files d'attente de lettres mortes. Amazon SNS peut enregistrer à la fois les livraisons réussies et les livraisons échouées CloudWatch. Pour de plus amples informations, veuillez consulter Attributs de l'application SNS mobile Amazon.