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.
Publier des messages volumineux avec Amazon SNS
Amazon SNS prend en charge des charges utiles de messages allant jusqu'à 1 MiB (1 048 576 octets) lorsque vous configurez l'attribut topic. MaximumMessageSize Par défaut, les sujets acceptent des messages d'une taille maximale de 256 Ko. Les rubriques dont MaximumMessageSize la valeur est supérieure à 256 Ko prennent en charge Amazon Data Firehose, Amazon SQS et les AWS Lambda abonnements, avec un total de 100 abonnements par sujet.
Comment fonctionne la publication de messages volumineux
Vous pouvez définir l'attribut MaximumMessageSize topic sur n'importe quelle valeur entière comprise entre 1 024 et 1 048 576 octets. Par défaut, toutes les rubriques existantes et nouvellement créées ont une taille MaximumMessageSize de 262 144 octets (256 Ko).
Lorsque vous publiez un message, Amazon SNS valide la taille combinée du corps du message et des attributs du message par rapport à la rubrique configurée. MaximumMessageSize Si la taille combinée dépasse la limite, Amazon SNS renvoie une InvalidParameter erreur lors de la publication.
Configuration prise en charge
Lorsque vous définissez une valeur MaximumMessageSize supérieure à 256 KiB, Amazon SNS prend en charge la configuration suivante.
Limites d'abonnement
La rubrique prend en charge jusqu'à 100 abonnements au total. Si vous tentez de créer des abonnements supplémentaires, Amazon SNS renvoie un InvalidParameter message d'erreur.
Types de terminaux pris en charge
Les rubriques dont la taille est MaximumMessageSize supérieure à 256 Ko prennent en charge les types de terminaux suivants :
-
Amazon Data Firehose
-
Amazon SQS
-
AWS Lambda
Les sujets dont MaximumMessageSize la taille est inférieure ou égale à 256 Ko prennent également en charge les points de terminaison SMS HTTP/HTTPS, e-mail, email-json et mobile push (application).
Réglage MaximumMessageSize sur des sujets existants
Vous pouvez augmenter ou diminuer le nombre de sujets MaximumMessageSize à tout moment. Une fois la valeur modifiée, Amazon SNS valide les nouvelles demandes de publication par rapport à la limite mise à jour.
Pour MaximumMessageSize dépasser 256 Ko, la rubrique doit comporter 100 abonnements au total ou moins, qui doivent tous correspondre à des types de terminaux pris en charge (Amazon Data Firehose, Amazon SQS ou AWS Lambda). Si la rubrique contient des types de terminaux non pris en charge ou s'il existe plus de 100 abonnements, Amazon SNS renvoie un InvalidParameter message d'erreur.
Configuration de votre sujet pour les messages volumineux
Utilisation de AWS Console de gestion
Pour configurer votre sujet afin de publier des messages plus volumineux
-
Ouvrez la console Amazon SNS à l'adresse https://console.aws.amazon.com/sns/home
. -
Dans le panneau de navigation de gauche, choisissez Rubriques.
-
Sélectionnez votre sujet et choisissez Modifier.
-
Sous Taille maximale des messages, définissez la limite souhaitée (jusqu'à 1 024 Ko).
-
Cliquez sur Enregistrer les modifications.
Utilisation de AWS INTERFACE DE LIGNE DE COMMANDE (CLI)
Définissez MaximumMessageSize lors de la création d'un nouveau sujet :
aws sns create-topic \ --name my-large-message-topic \ --attributes MaximumMessageSize=1048576
Remplacez-le my-large-message-topic par le nom de votre sujet et 1048576 par la taille maximale de message souhaitée en octets.
MaximumMessageSizeRéglé sur un sujet existant :
aws sns set-topic-attributes \ --topic-arn arn:aws:sns:us-east-1:123456789012:my-topic \ --attribute-name MaximumMessageSize \ --attribute-value 1048576
arn:aws:sns:us-east-1:123456789012:my-topicRemplacez-le par l'ARN de votre sujet et 1048576 par la taille de message maximale souhaitée en octets.
Vérifiez que votre sujet est d'actualitéMaximumMessageSize. Si l'attribut n'a pas été défini explicitement, il n'apparaît pas dans la réponse et la rubrique utilise la valeur par défaut de 262 144 octets (256 Ko).
aws sns get-topic-attributes \ --topic-arn arn:aws:sns:us-east-1:123456789012:my-topic
Référence de l'API Amazon SNS pour les messages volumineux
La prise en charge des messages volumineux utilise les API Amazon SNS existantes. Vous n'avez pas besoin de nouvelles opérations d'API.
| API | Modifier |
|---|---|
CreateTopic |
Accepte MaximumMessageSize dans le Attributes paramètre. Plage valide : 1 024 à 1 048 576 octets. |
SetTopicAttributes |
Accepte MaximumMessageSize comme nom d'attribut. |
GetTopicAttributes |
Renvoie MaximumMessageSize si l'attribut a été défini explicitement. Si elle n'est pas renvoyée, la rubrique utilise la valeur par défaut de 262 144 octets (256 Ko). |
Publish |
Valide la taille combinée du corps du message et des attributs du message par rapport à celle du MaximumMessageSize sujet. |
PublishBatch |
Valide la taille combinée de tous les messages du lot (corps et attributs de chaque message) par rapport à celle du MaximumMessageSize sujet. |
Compatibilité des terminaux
La liste suivante décrit la manière dont Amazon SNS transmet vos messages volumineux à chaque type de point de terminaison pris en charge.
-
Amazon Data Firehose — Amazon Data Firehose charge des données en streaming dans des magasins de données et des services d'analyse. Il prend en charge des enregistrements jusqu'à 1 000 KiB (1 024 000 octets). Le message délivré doit rester en dessous de cette limite. La limite inclut les métadonnées de diffusion Amazon SNS, telles que l'ID du message et l'horodatage. Les messages dépassant la limite ne sont pas transmis. La taille d'une rubrique
MaximumMessageSizepeut être configurée jusqu'à 1 024 Ko (1 048 576 octets). C'est pourquoi nous vous recommandons de définir une valeur inférieureMaximumMessageSizepour les sujets liés à des abonnements Firehose. Pour connaître la limite de taille d'enregistrement actuelle, consultez la section Quotas Amazon Data Firehose. -
Amazon SQS — Amazon SNS peut envoyer un message à une file d'attente Amazon SQS abonnée jusqu'à la taille de message maximale prise en charge par Amazon SQS. Les informations propres à la file d'attente
MaximumMessageSizene s'appliquent pas aux messages provenant d'Amazon SNS. La rubrique Amazon SNS indiqueMaximumMessageSizela taille limite effective de ces messages. -
AWS Lambda— Amazon SNS invoque des AWS Lambda fonctions de manière asynchrone. AWS Lambda prend en charge des charges utiles d'invocation asynchrones jusqu'à 1 Mo. Aucune configuration supplémentaire n'est requise pour les AWS Lambda abonnements.
Bonnes pratiques
Configuration des files d'attente pour les lettres mortes
Nous vous recommandons de configurer une file d'attente de lettres mortes (DLQ) pour tous les abonnements afin de gérer l'échec de la remise des messages. Un DLQ capture les messages qu'Amazon SNS ne parvient pas à transmettre avec succès au terminal abonné, ce qui vous permet de les inspecter et de les retraiter. Pour plus d’informations, consultez Files d'attente aux lettres mortes Amazon SNS.
Surveillez à l'aide CloudWatch de mesures et d'alarmes
Utilisez CloudWatch des métriques pour surveiller la remise des messages et définir des alarmes en cas d'échec de livraison. La NumberOfNotificationsFailed métrique suit les messages qu'Amazon SNS ne peut pas envoyer aux terminaux abonnés. Créez une CloudWatch alarme sur cette métrique pour recevoir des alertes en cas d'échec de livraison. Pour plus d’informations, consultez Surveillance des sujets Amazon SNS à l'aide de CloudWatch.
Publier des messages d'une taille supérieure à 1 Mo avec Amazon S3
Pour publier des messages d'une taille supérieure à 1 Mo, utilisez la bibliothèque client étendue Amazon SNS pour Java MaximumMessageSize avant de choisir cette approche, voirConfiguration de votre sujet pour les messages volumineux.