Attributs de message Amazon SNS - Amazon Simple Notification Service

Attributs de message Amazon SNS

Amazon SNS prend en charge la distribution des attributs de message qui vous permettent de fournir des éléments de métadonnées structurés (tels que des horodatages, des données géospatiales, des signatures et des identifiants) sur le message. Pour les abonnements SQS, un maximum de 10 attributs de message peuvent être envoyés lorsque la remise des messages bruts est activée. Pour envoyer plus de 10 attributs de message, la remise des messages bruts doit être désactivée.

Les attributs de message sont facultatifs et séparés du corps du message, bien qu'ils soient envoyés en même temps. Le récepteur peut utiliser ces informations pour traiter le message sans avoir à traiter le corps du message en premier.

Pour plus d'informations sur l'envoi de messages avec des attributs à l'aide de AWS Management Console ou du kit AWS SDK for Java, veuillez consulter le didacticiel Pour publier des messages dans une rubrique Amazon SNS à l'aide de la AWS Management Console.

Note

Les attributs de message sont envoyés uniquement lorsque la structure du message est Chaîne et non JSON.

Vous pouvez également utiliser les attributs de message pour mieux structurer le message de notification push pour les points de terminaison mobiles. Dans ce scénario, les attributs du message sont uniquement utilisés pour vous aider à structurer le message de notification push. Les attributs ne sont pas distribués au point de terminaison, comme c'est le cas lors de l'envoi de messages avec les attributs du message aux points de terminaison Amazon SQS.

Vous pouvez également utiliser les attributs du message pour que vos messages puissent être filtrés à l'aide de stratégies de filtre d'abonnement. Vous pouvez appliquer des stratégies de filtre aux abonnements aux rubriques. Lorsqu'une stratégie de filtre est appliquée, un abonnement reçoit uniquement les messages ayant des attributs acceptés par la stratégie. Pour plus d'informations, consultez Filtrage des messages Amazon SNS.

Éléments d'attribut de message et validation

Chaque attribut de message se compose des éléments suivants :

  • Name – Le nom d'attribut de message peut contenir les caractères suivants : A-Z, a-z, 0-9, trait de soulignement (_), tiret (-) et point (.). Le nom ne doit pas commencer ou se terminer par un point et ne doit pas contenir plusieurs points à la suite. Le nom est sensible à la casse et doit être unique parmi tous les noms d'attribut pour le message. La longueur maximale du nom est de 256 caractères. Le nom ne peut pas commencer par AWS. ou Amazon. (indépendamment de la casse), car ces préfixes sont réservés pour une utilisation par Amazon Web Services.

  • Type – Les types de données d'attribut de message pris en charge sont String, String.Array, Number et Binary. Le type de données est soumis aux mêmes restrictions de contenu que le corps du message. Le type de données est sensible à la casse et peut contenir jusqu'à 256 octets. Pour plus d'informations, consultez la section Types de données d'attribut de message et validation.

  • Value – La valeur d'attribut du message spécifiée par l'utilisateur. Pour les données de type chaîne, l'attribut de valeur est soumis aux mêmes restrictions de contenu que le corps du message. Pour plus d'informations, consultez Publish dans la Référence d'API Amazon Simple Notification Service.

Les nom, type et valeur ne doivent pas être vides ni contenir la valeur null. Le corps du message ne doit pas être vide ni contenir la valeur null non plus. Toutes les parties de l'attribut du message, y compris le nom, le type et la valeur, sont incluses dans la restriction de taille du message, qui est de 256 Ko.

Types de données d'attribut de message et validation

Les types de données d'attribut de message identifient la façon dont les valeurs d'attribut de message sont traitées par Amazon SNS. Par exemple, si le type est un nombre, Amazon SNS valide le fait qu'il s'agit d'un nombre.

Amazon SNS prend en charge les types de données logiques suivants pour tous les points de terminaison, sauf indication contraire :

  • String – Les chaînes sont au format Unicode avec un codage binaire UTF-8. Pour obtenir la liste des valeurs des codes, consultez http://fr.wikipedia.org/wiki/American_Standard_Code_for_Information_Interchange.

    Note

    Les valeurs de substitution ne sont pas prises en charge dans les attributs du message. Par exemple, l’utilisation d’une valeur de substitution pour représenter un emoji vous donnera l’erreur suivante :Invalid attribute value was passed in for message attribute.

  • String.Array – Tableau, formaté sous la forme d'une chaîne, qui peut contenir plusieurs valeurs. Les valeurs peuvent être des chaînes, des nombres ou les mots-clés true, false et null. Un String.Array de type nombre ou booléen ne nécessite pas de guillemets.

    Ce type de données n'est pas pris en charge pour les abonnements AWS Lambda. Si vous spécifiez ce type de données pour les points de terminaison Lambda, il est transmis comme type de données String dans la charge utile JSON qu'Amazon SNS distribue à Lambda.

  • Number – Les nombres sont des entiers positifs ou négatifs, ou des nombres à virgule flottante. La plage et la précision des nombres sont suffisantes pour englober la plupart des valeurs qui peuvent généralement être prises en charge par les entiers, les nombres flottants et les doubles. Un nombre peut avoir une valeur de -109 à 109, avec une précision de 5 chiffres après la virgule. Les zéros de début et de fin sont tronqués.

    Ce type de données n'est pas pris en charge pour les abonnements AWS Lambda. Si vous spécifiez ce type de données pour les points de terminaison Lambda, il est transmis comme type de données String dans la charge utile JSON qu'Amazon SNS distribue à Lambda.

  • Binary – Les attributs de type binaire peuvent stocker n'importe quelle donnée binaire, notamment des données compressées, des données chiffrées ou des images.

Attributs de message réservés pour les notifications push mobiles

Le tableau suivant répertorie les attributs de message réservés pour les services de notification push mobiles que vous pouvez utiliser pour structurer votre message de notification push :

Service de notification push Attribut de message réservé
ADM AWS.SNS.MOBILE.ADM.TTL
APNs AWS.SNS.MOBILE.APNS_MDM.TTL
AWS.SNS.MOBILE.APNS_MDM_SANDBOX.TTL
AWS.SNS.MOBILE.APNS_PASSBOOK.TTL
AWS.SNS.MOBILE.APNS_PASSBOOK_SANDBOX.TTL
AWS.SNS.MOBILE.APNS_SANDBOX.TTL
AWS.SNS.MOBILE.APNS_VOIP.TTL
AWS.SNS.MOBILE.APNS_VOIP_SANDBOX.TTL
AWS.SNS.MOBILE.APNS.COLLAPSE_ID
AWS.SNS.MOBILE.APNS.PRIORITY
AWS.SNS.MOBILE.APNS.PUSH_TYPE
AWS.SNS.MOBILE.APNS.TOPIC
AWS.SNS.MOBILE.APNS.TTL

Baidu

AWS.SNS.MOBILE.BAIDU.DeployStatus
AWS.SNS.MOBILE.BAIDU.MessageKey
AWS.SNS.MOBILE.BAIDU.MessageType
AWS.SNS.MOBILE.BAIDU.TTL
FCM AWS.SNS.MOBILE.FCM.TTL
AWS.SNS.MOBILE.GCM.TTL
macOS AWS.SNS.MOBILE.MACOS_SANDBOX.TTL
AWS.SNS.MOBILE.MACOS.TTL

MPNS

AWS.SNS.MOBILE.MPNS.NotificationClass
AWS.SNS.MOBILE.MPNS.TTL

AWS.SNS.MOBILE.MPNS.Type

WNS AWS.SNS.MOBILE.WNS.CachePolicy
AWS.SNS.MOBILE.WNS.Group
AWS.SNS.MOBILE.WNS.Match
AWS.SNS.MOBILE.WNS.SuppressPopup
AWS.SNS.MOBILE.WNS.Tag
AWS.SNS.MOBILE.WNS.TTL
AWS.SNS.MOBILE.WNS.Type