Azure Storage Queues-Clientbibliothek für .NET– Version 12.17.0
Serverversion: 2021-02-12, 2020-12-06, 2020-10-02, 2020-08-04, 2020-06-12, 2020-04-08, 2020-02-10, 2019-12-12, 2019-07-07 und 2019-02-02-02
Die Warteschlangenspeicherung in Azure ist ein Dienst zur Speicherung großer Anzahlen von Nachrichten, auf die von überall auf der Welt mit authentifizierten Anrufen über HTTP oder HTTPS zugegriffen werden kann. Eine einzelne Warteschlangennachricht kann bis zu 64 KB groß sein, und eine Warteschlange kann Millionen von Nachrichten enthalten. Deren Anzahl ist nur durch die Kapazität des Speicherkontos begrenzt.
Quellcode | Paket (NuGet) | API-Referenzdokumentation | REST-API-Dokumentation | Produktdokumentation
Erste Schritte
Installieren des Pakets
Installieren Sie die Azure Storage Queues-Clientbibliothek für .NET mit NuGet:
dotnet add package Azure.Storage.Queues
Voraussetzungen
Sie benötigen ein Azure-Abonnement und ein Speicherkonto , um dieses Paket verwenden zu können.
Zum Erstellen eines neuen Speicherkontos können Sie das Azure-Portal, Azure PowerShell oder die Azure CLI verwenden. Beispiel für die Verwendung der Azure-Befehlszeilenschnittstelle:
az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS
Authentifizieren des Clients
Um mit dem Azure Queue Storage-Dienst zu interagieren, müssen Sie eine instance der QueueClient-Klasse erstellen. Die Azure Identity-Bibliothek erleichtert das Hinzufügen von Azure Active Directory-Unterstützung für die Authentifizierung von Azure SDK-Clients mit den entsprechenden Azure-Diensten.
// Create a QueueClient that will authenticate through Active Directory
Uri queueUri = new Uri("https://MYSTORAGEACCOUNT.queue.core.windows.net/QUEUENAME");
QueueClient queue = new QueueClient(queueUri, new DefaultAzureCredential());
Weitere Informationen zum Aktivieren von Azure Active Directory für die Authentifizierung mit Azure Storage finden Sie in unserer Dokumentation und in unseren Beispielen.
Wichtige Begriffe
Warteschlangenspeicherungen werden hauptsächlich für folgende Zwecke verwendet:
- Erstellung eines Arbeits-Backlogs zur asynchronen Verarbeitung
- Übergeben von Nachrichten zwischen verschiedenen Teilen einer verteilten Anwendung
Threadsicherheit
Wir garantieren, dass alle Client-instance Methoden threadsicher und unabhängig voneinander sind (Richtlinie). Dadurch wird sichergestellt, dass die Empfehlung, Clientinstanzen wiederzuverwenden, immer sicher ist, auch über Threads hinweg.
Zusätzliche Konzepte
Clientoptionen | Zugreifen auf die Antwort | Vorgänge | mit langer AusführungsdauerBehandeln von Fehlern | Diagnose | Spott | Clientlebensdauer
Beispiele
Senden von Nachrichten
// We'll need a connection string to your Azure Storage account.
// You can obtain your connection string from the Azure Portal
// (click Access Keys under Settings in the Portal Storage account
// blade) or using the Azure CLI with:
//
// az storage account show-connection-string --name <account_name> --resource-group <resource_group>
//
// You would normally provide the connection string to your
// application using an environment variable.
string connectionString = "<connection_string>";
// Name of the queue we'll send messages to
string queueName = "sample-queue";
// Get a reference to a queue and then create it
QueueClient queue = new QueueClient(connectionString, queueName);
queue.Create();
// Send a message to our queue
queue.SendMessage("Hello, Azure!");
Empfangen von Nachrichten
// We'll need a connection string to your Azure Storage account.
string connectionString = "<connection_string>";
// Name of an existing queue we'll operate on
string queueName = "sample-queue";
// Get a reference to a queue and then fill it with messages
QueueClient queue = new QueueClient(connectionString, queueName);
queue.SendMessage("first");
queue.SendMessage("second");
queue.SendMessage("third");
// Get the next messages from the queue
foreach (QueueMessage message in queue.ReceiveMessages(maxMessages: 10).Value)
{
// "Process" the message
Console.WriteLine($"Message: {message.Body}");
// Let the service know we're finished with the message and
// it can be safely deleted.
queue.DeleteMessage(message.MessageId, message.PopReceipt);
}
Asynchrone APIs
Wir unterstützen sowohl synchrone als auch asynchrone APIs vollständig.
// We'll need a connection string to your Azure Storage account.
string connectionString = "<connection_string>";
// Name of the queue we'll send messages to
string queueName = "sample-queue";
// Get a reference to a queue and then create it
QueueClient queue = new QueueClient(connectionString, queueName);
await queue.CreateAsync();
// Send a message to our queue
await queue.SendMessageAsync("Hello, Azure!");
Nachrichtencodierung
Diese Version der Bibliothek codiert die Nachricht standardmäßig nicht. V11 und frühere Versionen sowie Azure Functions standardmäßig Base64-codierte Nachrichten verwenden. Daher wird empfohlen, dieses Feature für Interoperabilitätsszenarien zu verwenden.
QueueClientOptions queueClientOptions = new QueueClientOptions()
{
MessageEncoding = QueueMessageEncoding.Base64
};
QueueClient queueClient = new QueueClient(connectionString, queueName, queueClientOptions);
Problembehandlung
Alle Azure Storage-Warteschlangendienstvorgänge lösen bei Einem Fehler eine RequestFailedException mit hilfreichenErrorCode
Funktionen aus. Viele dieser Fehler können wiederhergestellt werden.
// We'll need a connection string to your Azure Storage account.
string connectionString = "<connection_string>";
// Name of an existing queue we'll operate on
string queueName = "sample-queue";
try
{
// Try to create a queue that already exists
QueueClient queue = new QueueClient(connectionString, queueName);
queue.Create();
}
catch (RequestFailedException ex)
when (ex.ErrorCode == QueueErrorCode.QueueAlreadyExists)
{
// Ignore any errors if the queue already exists
}
Nächste Schritte
Erste Schritte mit unseren Warteschlangenbeispielen:
- Hallo Welt: Warteschlangennachrichten in die Warteschlange stellen, aufheben, einsehen und aktualisieren (oder asynchron)
- Authentifizierung: Authentifizieren Sie sich mit Verbindungszeichenfolgen, freigegebenen Schlüsseln, Shared Access Signatures und Azure Active Directory.
Mitwirken
Ausführliche Informationen zum Erstellen, Testen und Mitwirken zu dieser Bibliothek finden Sie unter Storage CONTRIBUTING.md .
Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Weitere Informationen finden Sie unter cla.microsoft.com.
Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.