Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Conseil / Astuce
Testez Microsoft Azure Storage Explorer
Microsoft Azure Storage Explorer est une application autonome et gratuite de Microsoft qui vous permet d’exploiter visuellement les données de Stockage Azure sur Windows, macOS et Linux.
Aperçu
Ce guide vous montre comment effectuer des scénarios courants à l’aide du service de Stockage de File d’attente de Microsoft Azure. Les exemples sont écrits à l’aide de l’API Azure Ruby. Les scénarios abordés incluent l’insertion, l’aperçu, l’obtention et la suppression de messages de file d’attente, ainsi que la création et la suppression de files d’attente.
Qu'est-ce que le stockage de file d'attente ?
Le stockage Azure Queue Storage est un service permettant de stocker un grand nombre de messages accessibles partout dans le monde via des appels authentifiés utilisant HTTP ou HTTPS. Un message de file d’attente unique peut atteindre jusqu’à 64 Ko et une file d’attente peut contenir des millions de messages, jusqu’à la limite de capacité totale d’un compte de stockage. Le stockage file d’attente est souvent utilisé pour créer un backlog de travail à traiter de manière asynchrone.
Concepts du service de file d’attente
Le service File d’attente Azure contient les composants suivants :
compte de stockage : tout l’accès au stockage Azure est effectué via un compte de stockage. Pour plus d’informations sur les comptes de stockage, consultez Vue d’ensemble des comptes de stockage.
File d’attente : une file d’attente contient un ensemble de messages. Tous les messages doivent être dans une file d’attente. Notez que le nom de la file d’attente doit être en minuscules. Pour plus d'informations sur l’affectation de noms à des files d’attente, consultez Affectation de noms pour les files d'attente et les métadonnées.
Message : message dans n’importe quel format d’une taille maximale de 64 Ko. La durée maximale pendant laquelle un message peut rester dans la file d’attente est de 7 jours. Pour les versions du 29 juillet 2017 ou ultérieures, la durée de vie maximale peut être n’importe quel nombre positif, ou -1 indiquant que le message n’expire pas. Si ce paramètre est omis, la valeur par défaut de la durée de vie est de sept jours.
format d’URL : Les files d’attente peuvent être adressées en utilisant le format d’URL suivant : http://
<storage account>.queue.core.windows.net/<queue>L'URL suivante se réfère à une file d'attente dans le diagramme :
http://myaccount.queue.core.windows.net/incoming-orders
Créer un compte de stockage Azure
Le moyen le plus simple de créer votre premier compte de stockage Azure consiste à utiliser le portail Azure . Pour plus d’informations, consultez la page Créer un compte de stockage.
Vous pouvez également créer un compte de stockage Azure à l’aide de Azure PowerShell, Azure CLI ou du fournisseur de ressources de stockage Azure pour .NET.
Si vous préférez ne pas créer de compte de stockage dans Azure pour l’instant, vous pouvez également utiliser l’émulateur de stockage Azurite pour exécuter et tester votre code dans un environnement local. Pour plus d’informations, consultez Utiliser l’émulateur Azurite pour le développement Azure Storage local.
Créer une application Ruby
Créez une application Ruby. Pour obtenir des instructions, consultez Créer une application Ruby dans App Service sur Linux.
Configurer votre application pour accéder au stockage
Pour utiliser stockage Azure, vous devez télécharger et utiliser le package Azure Ruby, qui inclut un ensemble de bibliothèques pratiques qui communiquent avec les services REST de stockage.
Utiliser RubyGems pour obtenir le package
- Utilisez une interface de ligne de commande telle que PowerShell (Windows), Terminal (Mac) ou Bash (Unix).
- Tapez
gem install azuredans la fenêtre de commande pour installer la gemme et les dépendances.
Importation du package
Utilisez votre éditeur de texte favori, ajoutez ce qui suit en haut du fichier Ruby dans lequel vous envisagez d’utiliser le stockage :
require "azure"
Configurer une connexion stockage Azure
Le module Azure lit les variables AZURE_STORAGE_ACCOUNT d’environnement et AZURE_STORAGE_ACCESS_KEY pour obtenir des informations nécessaires pour se connecter à votre compte stockage Azure. Si ces variables d’environnement ne sont pas définies, vous devez spécifier les informations de compte avant d’utiliser Azure::QueueService avec le code suivant :
Azure.config.storage_account_name = "<your azure storage account>"
Azure.config.storage_access_key = "<your Azure storage access key>"
Pour obtenir ces valeurs à partir d’un compte de stockage Classique ou Resource Manager dans le portail Azure :
- Connectez-vous au portail Azure.
- Accédez au compte de stockage que vous souhaitez utiliser.
- Dans le panneau Paramètres à droite, cliquez sur Clés d’accès.
- Dans le panneau Clés d’accès qui s’affiche, vous verrez la clé d’accès 1 et la clé d’accès 2. Vous pouvez utiliser l’une ou l’autre de ces options.
- Cliquez sur l’icône de copie pour copier la clé dans le Presse-papiers.
Guide pratique pour créer une file d’attente
Le code suivant crée un Azure::QueueService objet, qui vous permet d’utiliser des files d’attente.
azure_queue_service = Azure::QueueService.new
Utilisez la create_queue() méthode pour créer une file d’attente avec le nom spécifié.
begin
azure_queue_service.create_queue("test-queue")
rescue
puts $!
end
Guide pratique pour insérer un message dans une file d’attente
Pour insérer un message dans une file d’attente, utilisez la méthode create_message() afin de créer un message et l’ajouter à la file d’attente.
azure_queue_service.create_message("test-queue", "test message")
Guide pratique pour examiner le message suivant
Vous pouvez lire furtivement le message au début de la file d’attente sans l’enlever de la file d’attente en appelant la méthode peek_messages(). Par défaut, peek_messages() examine brièvement un seul message. Vous pouvez également spécifier le nombre de messages que vous souhaitez afficher.
result = azure_queue_service.peek_messages("test-queue",
{:number_of_messages => 10})
Procédure : retirer le prochain message de la file d'attente
Vous pouvez supprimer un message d’une file d’attente en deux étapes.
- Lorsque vous appelez
list_messages(), vous obtenez le message suivant dans une file d’attente par défaut. Vous pouvez également spécifier le nombre de messages que vous souhaitez obtenir. Les messages retournés deviennentlist_messages()invisibles à tout autre code lisant les messages de cette file d’attente. Vous passez le délai d’expiration de visibilité en secondes en tant que paramètre. - Pour terminer la suppression du message de la file d’attente, vous devez également appeler
delete_message().
Ce processus en deux étapes de suppression d’un message garantit que lorsque votre code ne parvient pas à traiter un message en raison d’une défaillance matérielle ou logicielle, une autre instance de votre code peut obtenir le même message et réessayer. Votre code appelle delete_message() juste après le traitement du message.
messages = azure_queue_service.list_messages("test-queue", 30)
azure_queue_service.delete_message("test-queue",
messages[0].id, messages[0].pop_receipt)
Guide pratique pour modifier le contenu d’un message mis en file d’attente
Vous pouvez modifier le contenu d’un message sur place dans la file d’attente. Le code suivant utilise la méthode update_message() pour mettre à jour un message. La méthode renvoie un tuple qui contient l'accusé de réception du message de file d'attente et une valeur UTC DateTime qui représente quand le message sera visible sur la file d'attente.
message = azure_queue_service.list_messages("test-queue", 30)
pop_receipt, time_next_visible = azure_queue_service.update_message(
"test-queue", message.id, message.pop_receipt, "updated test message",
30)
Procédure : options supplémentaires pour le retrait des messages
Il existe deux façons de personnaliser la récupération des messages à partir d’une file d’attente.
- Vous pouvez obtenir un lot de messages.
- Vous pouvez définir un délai d’invisibilité plus long ou plus court, ce qui permet à votre code de traiter complètement chaque message.
L’exemple de code suivant utilise la list_messages() méthode pour obtenir 15 messages dans un appel. Ensuite, il imprime et supprime chaque message. Il définit également le délai d’invisibilité sur cinq minutes pour chaque message.
azure_queue_service.list_messages("test-queue", 300
{:number_of_messages => 15}).each do |m|
puts m.message_text
azure_queue_service.delete_message("test-queue", m.id, m.pop_receipt)
end
Procédure : obtenir la longueur de la file d’attente
Vous pouvez obtenir une estimation du nombre de messages dans la file d’attente. La get_queue_metadata() méthode retourne le nombre approximatif de messages et d’autres métadonnées de file d’attente.
message_count, metadata = azure_queue_service.get_queue_metadata(
"test-queue")
Procédure : supprimer une file d’attente
Pour supprimer une file d'attente et tous les messages qu'elle contient, appelez la méthode delete_queue() sur l'objet file d'attente.
azure_queue_service.delete_queue("test-queue")
Étapes suivantes
Maintenant que vous avez appris les principes de base du stockage file d’attente, suivez ces liens pour en savoir plus sur les tâches de stockage plus complexes.
- Visitez le blog de l’équipe stockage Azure
- Visitez le référentiel Azure SDK pour Ruby sur GitHub
Pour une comparaison entre stockage file d’attente Azure abordé dans cet article et les files d’attente Azure Service Bus décrites dans Comment utiliser des files d’attente Service Bus, consultez Stockage file d’attente Azure et Files d’attente Service Bus - comparé et contrasté