Azure (Gestionnaire de message)

De Wiki1000

Sommaire


Ce type de gestionnaire permet d'utiliser une file d'attente Microsoft Azure du Système de stockage.

Tip-20px.png Tip : Attention , ne confondez pas les files d'attente du Système de stockage et les files d'attente du Service bus ; cette API ne fonctionne pas avec le Service bus

Paramétrage du compte Azure

Les files d'attente s'utilise sur un compte de stockage.

  • Configurez un compte de stockage :

Azure-storage-account.png

Le nom du compte de stockage est le nom d'utilisateur à configurer sur les informations de connexion associés à la file d'attente

  • Obtenez la clé publique :

Azure-storage-key.png

La clé publique est à configurer dans le champ AccountKey des paramètres des informations de connexion associés à la file d'attente.

Azure-queue-credentials.png


La création des files d'attente et des conteneurs associés est réalisé par le gestionnaire de message.

Paramétrage de TdbmQueue

QueueName Nom de la file d'attente (Nom interne<>nom Azure)
QueueConnectionInfos url de paramétrage de la file d'attente
QueueTopic Sujet de la file d'attente : nom de la file d'attente Azure
Credentials Référence vers les informtations d'authentication

Dbmqueue azure.png

Paramétrage des informations d'authentification

Les paramètres d'authentification sont extraits, par ordre de priorité :

  • De l'attribut Parameters de l'objet TdbmCredential contenant les informations d'authentification
  • De l'url paramétrant la file d'attente
  • De l'attribut UserName pour le nom du compte Azure
Paramètre Usage Défaut
AccountName Nom du stockage Azure. UserName des crédentials
AccountKey Clé publique d'accès au stockage.
Protocol Nom du protocole http utilisé https
BlobEndPoint End point des urls de blob valeur standard d'Azure
QueueEndPoint End point des urls de queue valeur standard d'Azure
TableEndPoint End point des urls de Table valeur standard d'Azure
RequestProxyHost Nom du serveur proxy Paramétrage par défaut du proxy du Service 1000
RequestProxyPort Port du serveur proxy Paramétrage par défaut du proxy du Service 1000
Tip-20px.png Tip : La clé ne peut pas être stockée dans le mot de passe, utiliser l'attribut Parameters qui permet de stocker des attributs arbitraires.

En général il suffit de paramétrer l'objet TdbmCredential ainsi :

  • UserName : Nom du compte Azure
  • Parameters : AccountKey : Clé publique d'accès au stockage


Paramétrage de l'URL

Outre les paramètres d'authentification l'url peut contenir les paramètres suivant qui configurent la gestion des messages :

Paramètre Type Usage Défault
xmlStorage boolean Le contenu du message est encapsulé dans un document xml true
sndFileName chaine Nom du paramètre du message contenant le nom du blob Azure FileName,AttachementName
sndContainerName chaine Nom du paramètre du message contenant le nom du containeur Azure ContainerName
sndAttachementContentType chaine Nom du paramètre du message contenant le type de contenu du binaire AttachementContentType,msgAttachementContentType
sndContent chaine Nom du paramètre du message contenant le contenu du message à transmettre (xmlStorage=false) Content,Subject
rcvVisibilityTimeOut Integer Valeur d'invisiblité du message après un dépilement 0
rcvLogMessage boolean Log les messages reçus (xmlStorage) dans le répertoire log du service false
  • sndFileName
Si le nom du fichier n'est pas défini par le paramétrage, un nom unique de type GUID est utilisé.
Renseignez un nom d'attribut inexistant pour forcer l'usage d'un nom unique.
  • sndContainerName
Si le nom du containeur Azure n'est pas défini par le paramétrage, le nom du containeur est défini par le nom de la file Azure post-fixé par "-blob".
  • VisibilityTimeOut
Si la valeur n'est pas défini ou vaut 0, la valeur par défaut d'Azure s'applique.


Exemple :

 azu://host/queue1?xmlStorage=true&rcvLogMessage=true

Messages

Un message Azure est constitué d'une chaine de caractère. Il ni a pas de notion d'attribut ou de contenu binaire attaché.

Un objet TdbmQueueMessage contient des propriétés et éventuellement un contenu binaire.

Le message TdbmQueueMessage est encodé en un message Azure ainsi :

Si xmlStorage vaut true (défaut)

  • Les propriétés du message TdbmQueueMessage sont encapsulées dans un document xml, le contenu du message Azure est ce document.
  • Le contenu binaire du message est copié dans un blob du système de stockage. Une référence vers ce blob est contenu dans le document xml.

Si xmlStorage vaut false

  • Le contenu du message est déterminé par le paramètre sndContent de l'url de configuration de la file d'attente.
  • Le contenu binaire n'est pas transmis.

Exemple

Url de configuration de la file :

azu://host/queue1?xmlStorage=true&rcvLogMessage=true&sndFileName=x

Post d'un message :

//Procedure TestQueueMessage;
var msg:TdbmQueueMessage; 
begin
  msg := TdbmQueueMessage.Create;
  msg.QueueName := 'QUEUEAZURE';
  msg.AddParameter('uneChaine','some text');
  msg.AddParameter('unEntier',1999);
  msg.AddParameter('Subject','le sujet du message');
  msg.AddParameter('Content','le text du message');
  msg.AddParameter('AttachementName','image.jpg');
  msg.AddParameter('AttachementContentType','image/jpeg');
  msg.BinaryContent.LoadFromFile('c:\image.jpg');
  msg.Post;
end;

Contenu du message dans la file Azure :

<?xml version="1.0" encoding="ISO-8859-1"?>
<MessageContainer>
<MessageSourceId>000000000000000000E20001AA9D0007</MessageSourceId>
<Topic>queue1</Topic>
<uneChaine>some text</uneChaine>
<unEntier>1999</unEntier>
<Subject>le sujet du message</Subject>
<Content>le text du message</Content>
<AttachementName>image.jpg</AttachementName>
<AttachementContentType>image/jpeg</AttachementContentType>
<ContentRef ContainerName="queue1-blobs" BlobName="{96462853-F99E-4840-A8E3-C19085F4F705}"/>
<ContentSize>175083</ContentSize>
<ContentType>image/jpeg</ContentType>
</MessageContainer>

Message reçu :

MessageID="c558c04b-c095-446b-b5f2-4199872d38c5"
MessageOID="c558c04b-c095-446b-b5f2-4199872d38c5"
Topic="queue1"
ReceiveDate="25/07/2013"
InsertionTime="Thu, 25 Jul 2013 11:31:50 GMT"
ExpirationTime="Thu, 01 Aug 2013 11:31:50 GMT"
DequeueCount="1"
PopReceipt="AgAAAAMAAAAAAAAAbLD8oCqJzgE="
TimeNextVisible="Thu, 25 Jul 2013 11:32:22 GMT"
MessageSourceId="000000000000000000E20001AA9D0007"
uneChaine="some text"
unEntier="1999"
Subject="le sujet du message"
Content="le text du message"
AttachementName="image.jpg"
AttachementContentType="image/jpeg"
ContainerName="queue1-blobs"
BlobName="{96462853-F99E-4840-A8E3-C19085F4F705}"
BlobReceipt="O"
ContentSize="175083"
ContentType="image/jpeg"

Dans l'exploreur de file d'attente Azure on retrouve le message ainsi que le blob associé :

Azure-queue-explorer.png

Voir aussi :

How to use the queue storage service.

Outils personnels