Métadonnées des messages pour Amazon SQS - Amazon Simple Queue 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.

Métadonnées des messages pour Amazon SQS

Vous pouvez utiliser des attributs de message pour attacher des métadonnées personnalisées aux messages Amazon SQS de vos applications. Vous pouvez utiliser des attributs de système de messages pour stocker des métadonnées pour d'autres services AWS , tels que AWS X-Ray.

Attributs de message Amazon SQS

Amazon SQS vous permet d'inclure des métadonnées structurés (tels que des horodatages, des données géospatiales, des signatures et des identifiants) dans des messages utilisant des attributs de message. Chaque message peut contenir jusqu'à 10 attributs. Les attributs de message sont facultatifs et séparés du corps du message (même s'ils sont envoyés en même temps). Votre consommateur peut utiliser des attributs de message pour traiter un message d'une façon particulière sans avoir à traiter d'abord le corps du message. Pour plus d'informations sur l'envoi de messages avec des attributs à l'aide de la console Amazon SQS, consultez Envoyer un message avec des attributs à l'aide d'Amazon SQS.

Note

Ne confondez pas les attributs des messages avec les attributs du système de messagerie : alors que vous pouvez utiliser les attributs de message pour joindre des métadonnées personnalisées aux messages Amazon SQS destinés à vos applications, vous pouvez utiliser les attributs du système de messagerie pour stocker les métadonnées d'autres AWS services, tels que. AWS X-Ray

Composants des attributs de message

Important

Tous les composants d'un attribut de message sont inclus dans la restriction de taille des messages à 256 Ko.

Name, Type, Value et le corps du message ne doivent pas être vides ni contenir la valeur null.

Chaque attribut de message est constitué des composants suivants :

  • Nom : le nom de l'attribut de message peut contenir les caractères suivants : A-Z, a-z, 0-9, trait de soulignement (_), tiret (-) et point (.). Les restrictions suivantes s'appliquent :

    • Il peut contenir jusqu'à 256 caractères.

    • Il ne peut pas commencer par AWS. ou Amazon. (ou toute variante de casse)

    • Il est sensible à la casse

    • Il doit être unique parmi tous les noms d'attribut pour le message

    • Il ne doit pas commencer ou se terminer par un point

    • Il ne doit pas comporter plusieurs points à la suite

  • Type : type de données de l'attribut de message. Les types pris en charge incluent String, Number et Binary. Vous pouvez également ajouter des informations personnalisées pour tout type de données. Le type de données est soumis aux mêmes restrictions que le corps du message (pour plus d'informations, consultez SendMessage dans la Référence d'API Amazon Simple Queue Service). En outre, les restrictions suivantes s'appliquent :

    • Il peut contenir jusqu'à 256 caractères.

    • Il est sensible à la casse

  • Valeur : valeur d'attribut du message. Pour les données de type String, les valeurs d'attribut sont soumises aux mêmes restrictions que le corps du message.

Types de données d'attribut de message

Les types de données d'attribut de message indiquent à Amazon SQS comment traiter les valeurs d'attribut de message correspondantes. Par exemple, si le type est Number, Amazon SQS valide les valeurs numériques.

Amazon SQS prend en charge les types de données logiques String, Number et Binary, avec la possibilité d'utiliser des étiquettes de type de données personnalisé au format .custom-data-type.

  • Chaîne : les attributs String peuvent stocker n'importe quel texte Unicode à l'aide de caractères XML valides.

  • Nombre : les attributs Number peuvent stocker des valeurs numériques positives ou négatives. Un nombre peut avoir jusqu'à 38 chiffres de précision et être compris entre 10^-128 et 10^+126.

    Note

    Amazon SQS supprime les zéros de début et de fin.

  • Binaire : les binary attributes peuvent stocker n'importe quelle donnée binaire, telles que des données compressées, des données chiffrées ou des images.

  • Personnalisé : pour créer un type de données personnalisé, ajoutez une étiquette de type personnalisé à n'importe quel type de données. Par exemple :

    • Number.byte, Number.short, Number.int et Number.float peuvent vous aider à faire la distinction entre les types de nombre.

    • Binary.gif et Binary.png peuvent vous aider à faire la distinction entre les types de fichier.

    Note

    Amazon SQS n'interprète pas, ne valide pas ou n'utilise pas les données ajoutées.

    L'étiquette de type personnalisé est soumise aux mêmes restrictions que le corps du message.

Calcul de la valeur de hachage MD5 pour les attributs de message

Si vous utilisez le AWS SDK for Java, vous pouvez ignorer cette section. La classe MessageMD5ChecksumHandler du kit SDK pour Java prend en charge les valeurs de hachage MD5 pour les attributs de message Amazon SQS.

Si vous utilisez l'API Query ou l'un des AWS SDK qui ne prennent pas en charge les résumés de messages MD5 pour les attributs de message Amazon SQS, vous devez suivre les directives suivantes pour effectuer le calcul du résumé des messages MD5.

Note

Incluez toujours des suffixes de type de données personnalisés dans le calcul des valeurs de hachage MD5.

Présentation

Voici une présentation de l'algorithme de calcul de la valeur de hachage MD5 :

  1. Triez tous les attributs de message dans l'ordre croissant en fonction de leur nom.

  2. Encodez les différentes parties de chaque attribut (Name, Type et Value) dans un tampon.

  3. Calculez le résumé du message du tampon entier.

Le schéma suivant illustre l'encodage du résumé de message MD5 pour un attribut de message unique :

Codage du résumé du message MD5 pour un seul attribut de message.

Pour encoder un seul attribut de message Amazon SQS

  1. Encodez le nom : la longueur (4 octets) et les octets UTF-8 du nom.

  2. Encodez le type de données : la longueur (4 octets) et les octets UTF-8 du type de données.

  3. Encodez le type de transport (String ou Binary) de la valeur (1 octet).

    Note

    Les types de données logiques String et Number utilisent le type de transport String.

    Le type de données logiques Binary utilise le type de transport Binary.

    1. Pour le type de transport String, encodez 1.

    2. Pour le type de transport Binary, encodez 2.

  4. Encodez la valeur d'attribut.

    1. Pour un type de transport String, encodez la valeur d'attribut : la longueur (4 octets) et les octets UTF-8 de la valeur.

    2. Pour un type de transport Binary, encodez la valeur d'attribut : la longueur (4 octets) et les octets bruts de la valeur.

Attributs du système de message Amazon SQS

Vous pouvez utiliser des attributs de message pour attacher des métadonnées personnalisées aux messages Amazon SQS de vos applications, tandis que vous pouvez utiliser des attributs de système de message pour stocker des métadonnées pour d'autres services AWS , tels que AWS X-Ray. Pour plus d'informations, consultez le paramètre de demande MessageSystemAttribute des actions d'API SendMessage et SendMessageBatch, l'attribut AWSTraceHeader de l'action d'API ReceiveMessage, ainsi que le type de données MessageSystemAttributeValue dans la Référence d'API Amazon Simple Queue Service.

Les attributs de système de message sont structurés exactement comme les attributs de message, avec les exceptions suivantes :

  • Actuellement, le seul attribut de système de message pris en charge est AWSTraceHeader. Son type String et sa valeur doivent être une chaîne d'en-tête de AWS X-Ray trace correctement formatée.

  • La taille d'un attribut de système de message ne compte pas dans la taille totale d'un message.