Azure (Gestionnaire de message)
Ce type de gestionnaire permet d'utiliser une file d'attente Microsoft Azure du système de stockage.
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 |
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 : 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 :
<source lang="Delphi"> //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; </source>
Contenu du message dans la file Azure : <source lang='xml'> <?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> </source>
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"
Voir aussi :