Azure (Gestionnaire de message)
(Page créée avec « Ce type de gestionnaire permet d'utiliser une file d'attente Microsoft Azure du système de stockage. '''Paramétrage de TdbmQueue''' '''Paramétrage de l'... ») |
|||
(16 révisions intermédiaires par un utilisateur sont masquées) | |||
Ligne 1 : | Ligne 1 : | ||
− | + | __TOC__ | |
− | '' | + | Ce type de gestionnaire permet d'utiliser une file d'attente Microsoft Azure du Système de stockage. |
− | ' | + | {{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 : | ||
+ | |||
+ | [[image: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 : | ||
+ | |||
+ | [[image: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. | ||
+ | |||
+ | [[image: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|TdbmQueue]]=== | ||
+ | |||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | |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 | ||
+ | |} | ||
+ | |||
+ | [[image: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 | ||
+ | |||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | !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 : | ||
+ | |||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | !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 : | ||
+ | |||
+ | <pre> | ||
+ | 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" | ||
+ | </pre> | ||
+ | |||
+ | Dans l'exploreur de file d'attente Azure on retrouve le message ainsi que le blob associé : | ||
+ | |||
+ | [[image:azure-queue-explorer.png]] | ||
Voir aussi : | Voir aussi : | ||
Ligne 12 : | Ligne 251 : | ||
[http://www.windowsazure.com/en-us/develop/net/how-to-guides/queue-service/ How to use the queue storage service.] | [http://www.windowsazure.com/en-us/develop/net/how-to-guides/queue-service/ How to use the queue storage service.] | ||
+ | [[Category:Version710]] | ||
[[Category:File d'attente]] | [[Category:File d'attente]] | ||
+ | [[Category:Gestionnaire de file d'attente]] | ||
+ | [[Category:Azure]] |
Version actuelle en date du 30 mai 2016 à 12:58
Sommaire |
Ce type de gestionnaire permet d'utiliser une file d'attente Microsoft Azure du Système de stockage.
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 :
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 :
La clé publique est à configurer dans le champ AccountKey des paramètres des informations de connexion associés à la file d'attente.
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 |
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 :
//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é :
Voir aussi :