Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Tipp
Testen des Microsoft Azure Storage Explorer-
Beim Microsoft Azure Storage-Explorer handelt es sich um eine kostenlose eigenständige App von Microsoft, über die Sie ganz einfach visuell mit Azure Storage-Daten arbeiten können – unter Windows, MacOS und Linux.
Überblick
In diesem Handbuch erfahren Sie, wie Sie allgemeine Szenarien mit dem Microsoft Azure Queue Storage-Dienst ausführen. Die Beispiele werden mithilfe der Ruby Azure-API geschrieben. Die behandelten Szenarien umfassen Einfügen von, Einsehen von, Abrufen und Löschen von Nachrichten in Warteschlangen sowie Erstellen und Löschen von Warteschlangen.
Was ist Queue-Speicher?
Azure Queue Storage ist ein Dienst zum Speichern großer Anzahl von Nachrichten, auf die von überall auf der Welt über authentifizierte Anrufe mit HTTP oder HTTPS zugegriffen werden kann. Eine einzelne Warteschlangennachricht kann bis zu 64 KB groß sein, und eine Warteschlange kann Millionen von Nachrichten bis zum Gesamtkapazitätslimit eines Speicherkontos enthalten. Der Warteschlangenspeicher wird häufig verwendet, um einen Arbeitsbestand zu erstellen, der asynchron verarbeitet werden kann.
Konzepte des Warteschlangendienstes
Der Azure-Warteschlangendienst enthält die folgenden Komponenten:
Speicherkonto: Der gesamte Zugriff auf Azure Storage erfolgt über ein Speicherkonto. Weitere Informationen zu Speicherkonten finden Sie in der Speicherkontoübersicht.
Warteschlange: Eine Warteschlange enthält einen Satz von Nachrichten. Alle Nachrichten müssen sich in einer Warteschlange befinden. Beachten Sie, dass der Warteschlangenname nur aus Kleinbuchstaben bestehen darf. Informationen zum Benennen von Warteschlangen finden Sie unter Benennen von Warteschlangen und Metadaten.
Nachricht: Eine Nachricht in einem beliebigen Format und mit einer Größe von bis zu 64 KB. Die maximale Zeit, die eine Nachricht in der Warteschlange verbleiben kann, beträgt 7 Tage. Für Version 2017-07-29 oder höhere Versionen kann die maximale Gültigkeitsdauer eine beliebige positive Zahl sein. Mit -1 wird angegeben, dass die Nachricht nicht abläuft. Wird dieser Parameter ausgelassen, beträgt die Standardgültigkeitsdauer sieben Tage.
URL-Format: Warteschlangen können mithilfe des folgenden URL-Formats adressierbar sein: http://
<storage account>.queue.core.windows.net/<queue>Die folgende URL behebt eine Warteschlange im Diagramm:
http://myaccount.queue.core.windows.net/incoming-orders
Erstellen eines Azure-Speicherkontos
Die einfachste Möglichkeit zum Erstellen Ihres ersten Azure-Speicherkontos ist die Verwendung des Azure-Portals. Weitere Informationen finden Sie unter Erstellen von Speicherkonten.
Sie können auch ein Azure-Speicherkonto erstellen, indem Sie Azure PowerShell-, Azure CLI-oder den Azure Storage Resource Provider für .NET-verwenden.
Wenn Sie derzeit kein Speicherkonto in Azure erstellen möchten, können Sie auch den Azurite-Speicheremulator verwenden, um Ihren Code in einer lokalen Umgebung auszuführen und zu testen. Weitere Informationen finden Sie unter Verwenden des Azurite-Emulators für die lokale Azure Storage-Entwicklung.
Erstellen einer Ruby-Anwendung
Erstellen Sie eine Ruby-Anwendung. Anweisungen finden Sie unter Erstellen einer Ruby-Anwendung in App Service unter Linux.
Konfigurieren Sie Ihre Anwendung für den Zugriff auf den Speicher
Um Azure Storage zu verwenden, müssen Sie das Ruby Azure-Paket herunterladen und verwenden, das eine Reihe von Komfortbibliotheken enthält, die mit den Speicher-REST-Diensten kommunizieren.
Verwenden von RubyGems zum Abrufen des Pakets
- Verwenden Sie eine Befehlszeilenschnittstelle wie PowerShell (Windows), Terminal (Mac) oder Bash (Unix).
- Geben Sie
gem install azurein das Befehlsfenster ein, um das Gem und die Abhängigkeiten zu installieren.
Importieren des Pakets
Verwenden Sie Ihren bevorzugten Text-Editor, fügen Sie folgendes am Anfang der Ruby-Datei hinzu, in der Sie Speicher verwenden möchten:
require "azure"
Einrichten einer Azure Storage-Verbindung
Das Azure-Modul liest die Umgebungsvariablen AZURE_STORAGE_ACCOUNT und AZURE_STORAGE_ACCESS_KEY, um Informationen zu erhalten, die zum Herstellen einer Verbindung mit Ihrem Azure Storage-Konto erforderlich sind. Wenn diese Umgebungsvariablen nicht festgelegt sind, müssen Sie die Kontoinformationen angeben, bevor Sie Azure::QueueService mit dem folgenden Code verwenden:
Azure.config.storage_account_name = "<your azure storage account>"
Azure.config.storage_access_key = "<your Azure storage access key>"
So rufen Sie diese Werte aus einem klassischen speicherkonto oder einem Ressourcen-Manager-Speicherkonto im Azure-Portal ab:
- Melden Sie sich beim Azure-Portalan.
- Navigieren Sie zu dem Speicherkonto, das Sie verwenden möchten.
- Klicken Sie im Settings Blade auf der rechten Seite auf Zugriffstasten.
- Im angezeigten Access Keys Blade werden die Zugriffstaste 1 und die Zugriffstaste 2 angezeigt. Sie können eine dieser Optionen verwenden.
- Klicken Sie auf das Symbol "Kopieren", um den Schlüssel in die Zwischenablage zu kopieren.
Gewusst wie: Erstellen einer Warteschlange
Der folgende Code erstellt ein Azure::QueueService-Objekt, mit dem Sie mit Warteschlangen arbeiten können.
azure_queue_service = Azure::QueueService.new
Verwenden Sie die create_queue()-Methode, um eine Warteschlange mit dem angegebenen Namen zu erstellen.
begin
azure_queue_service.create_queue("test-queue")
rescue
puts $!
end
Vorgehensweise: Einfügen einer Nachricht in eine Warteschlange
Verwenden Sie zum Einfügen einer Nachricht in eine Warteschlange die create_message() Methode, um eine neue Nachricht zu erstellen und sie der Warteschlange hinzuzufügen.
azure_queue_service.create_message("test-queue", "test message")
Gewusst wie: Vorschau auf die nächste Nachricht
Sie können eine Vorschau der Nachricht vor einer Warteschlange anzeigen, ohne sie aus der Warteschlange zu entfernen, indem Sie die peek_messages()-Methode aufrufen. Standardmäßig wird von peek_messages() jeweils nur eine Nachricht eingesehen. Sie können auch angeben, wie viele Nachrichten Sie anzeigen möchten.
result = azure_queue_service.peek_messages("test-queue",
{:number_of_messages => 10})
So geht's: Die nächste Nachricht aus der Warteschlange entfernen
Sie können eine Nachricht in zwei Schritten aus einer Warteschlange entfernen.
- Wenn Sie
list_messages()anrufen, wird standardmäßig die nächste Nachricht in einer Warteschlange angezeigt. Sie können auch angeben, wie viele Nachrichten Sie abrufen möchten. Die vonlist_messages()zurückgegebenen Nachrichten werden für jeden anderen Code, der Nachrichten aus dieser Warteschlange liest, unsichtbar. Sie übergeben das Sichtbarkeits-Timeout in Sekunden als Parameter. - Um das Entfernen der Nachricht aus der Warteschlange abzuschließen, müssen Sie auch
delete_message()anrufen.
Dieser zweistufige Prozess beim Entfernen einer Nachricht stellt sicher, dass, wenn Ihr Code aufgrund von Hardware- oder Softwarefehlern eine Nachricht nicht verarbeiten kann, eine andere Instanz Ihres Codes dieselbe Nachricht empfangen und es erneut versuchen kann. Ihr Code ruft delete_message() direkt nach der Verarbeitung der Nachricht auf.
messages = azure_queue_service.list_messages("test-queue", 30)
azure_queue_service.delete_message("test-queue",
messages[0].id, messages[0].pop_receipt)
Vorgehensweise: Ändern des Inhalts einer in die Warteschlange eingereihten Nachricht
Sie können den Inhalt einer Nachricht direkt in der Warteschlange ändern. Der folgende Code verwendet die update_message()-Methode, um eine Nachricht zu aktualisieren. Die Methode gibt ein Tupel zurück, das den Empfangsbeleg der Warteschlangennachricht sowie einen UTC-DateTime-Wert enthält, der angibt, wann die Nachricht in der Warteschlange sichtbar wird.
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)
Anleitung: Zusätzliche Optionen zum Aus der Warteschlange Entfernen von Nachrichten
Es gibt zwei Möglichkeiten zum Anpassen des Nachrichtenabrufs aus einer Warteschlange.
- Sie können einen Stapel von Nachrichten abrufen.
- Sie können ein längeres oder kürzeres Unsichtbarkeit-Timeout festlegen, sodass Ihr Code mehr oder weniger Zeit hat, jede Nachricht vollständig zu verarbeiten.
Im folgenden Codebeispiel wird die list_messages()-Methode verwendet, um 15 Nachrichten in einem Aufruf abzurufen. Anschließend wird jede Nachricht gedruckt und gelöscht. Außerdem wird für jede Nachricht das Timeout für die Unsichtbarkeit auf fünf Minuten festgelegt.
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
Anleitung: Abrufen der Warteschlangenlänge
Sie können eine Schätzung der Anzahl der Nachrichten in der Warteschlange erhalten. Die methode get_queue_metadata() gibt die ungefähre Nachrichtenanzahl und andere Warteschlangenmetadaten zurück.
message_count, metadata = azure_queue_service.get_queue_metadata(
"test-queue")
Vorgehensweise: Löschen einer Warteschlange
Um eine Warteschlange und alle darin enthaltenen Nachrichten zu löschen, rufen Sie die delete_queue()-Methode für das Warteschlangenobjekt auf.
azure_queue_service.delete_queue("test-queue")
Nächste Schritte
Nachdem Sie nun die Grundlagen des Warteschlangenspeichers kennengelernt haben, können Sie diesen Links folgen, um mehr über komplexere Speicheraufgaben zu erfahren.
- Besuchen Sie den Azure Storage-Teamblog
- Besuchen Sie das Azure SDK für Ruby Repository auf GitHub
Einen Vergleich zwischen Azure Queue Storage, der in diesem Artikel besprochen wird, und Azure Service-Bus-Warteschlangen, die in Verwendung von Service-Bus-Warteschlangenerläutert werden, finden Sie unter Azure Queue Storage und Service-Bus-Warteschlangen – verglichen und kontrastiert.