Biblioteka klienta kolejki usługi Azure Storage dla platformy .NET — wersja 12.13.1
Wersja serwera: 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 i 2019-02-02
Azure Queue Storage to usługa do przechowywania dużej liczby komunikatów, do której można uzyskać dostęp z dowolnego miejsca na świecie za pośrednictwem uwierzytelnionego połączenia za pomocą protokołu HTTP lub HTTPS. Pojedynczy komunikat z kolejki nie może przekraczać 64 KB, a kolejka może zawierać miliony komunikatów — maksymalnie liczbę nieprzekraczającą całkowitego limitu pojemności konta magazynu.
Kod | źródłowy Pakiet (NuGet) | Dokumentacja referencyjna interfejsu | API Dokumentacja interfejsu | API REST Dokumentacja produktu
Wprowadzenie
Instalowanie pakietu
Zainstaluj bibliotekę klienta kolejki usługi Azure Storage dla platformy .NET przy użyciu narzędzia NuGet:
dotnet add package Azure.Storage.Queues
Wymagania wstępne
Do korzystania z tego pakietu potrzebna jest subskrypcja platformy Azure i konto magazynu .
Aby utworzyć nowe konto magazynu, możesz użyć witryny Azure Portal, Azure PowerShell lub interfejsu wiersza polecenia platformy Azure. Oto przykład użycia interfejsu wiersza polecenia platformy Azure:
az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS
Uwierzytelnianie klienta
Aby móc korzystać z usługi Azure Queue Storage, należy utworzyć wystąpienie klasy QueueClient. Biblioteka tożsamości platformy Azure ułatwia dodawanie obsługi usługi Azure Active Directory na potrzeby uwierzytelniania klientów zestawu Azure SDK przy użyciu odpowiednich usług platformy Azure.
// 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());
Dowiedz się więcej na temat włączania usługi Azure Active Directory do uwierzytelniania za pomocą usługi Azure Storage w naszej dokumentacji i naszych przykładach.
Kluczowe pojęcia
Najczęstsze zastosowania usługi Queue Storage obejmują:
- Tworzenie zaległości pracy do przetwarzania asynchronicznego
- Przekazywanie komunikatów między różnymi częściami aplikacji rozproszonej
Bezpieczeństwo wątkowe
Gwarantujemy, że wszystkie metody wystąpienia klienta są bezpieczne wątkowo i niezależne od siebie (wytyczne). Dzięki temu zalecenie ponownego instalowania wystąpień klienta jest zawsze bezpieczne, nawet w wątkach.
Dodatkowe pojęcia
Opcje | klienta Uzyskiwanie dostępu do odpowiedzi | Długotrwałe operacje | Obsługa błędów | Diagnostyka | Szyderczy | Okres istnienia klienta
Przykłady
Wysyłanie komunikatów
// 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!");
Odbieranie komunikatów
// 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);
}
Asynchroniczne interfejsy API
W pełni obsługujemy zarówno synchroniczne, jak i asynchroniczne interfejsy API.
// 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!");
Kodowanie komunikatów
Ta wersja biblioteki domyślnie nie koduje komunikatu. Wersje V11 i wcześniejsze, a także Azure Functions domyślnie używają komunikatów zakodowanych w formacie base64. W związku z tym zaleca się użycie tej funkcji w scenariuszach międzyoperacyjności.
QueueClientOptions queueClientOptions = new QueueClientOptions()
{
MessageEncoding = QueueMessageEncoding.Base64
};
QueueClient queueClient = new QueueClient(connectionString, queueName, queueClientOptions);
Rozwiązywanie problemów
Wszystkie operacje usługi Kolejka usługi Azure Storage będą zgłaszać błąd RequestFailedException z pomocnym ErrorCode
elementem s. Wiele z tych błędów można odzyskać.
// 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
}
Następne kroki
Rozpocznij pracę z naszymi przykładami kolejki:
- Hello world: Enqueue, Dequeue, Peek i Update queue messages (lub asynchronicznie)
- Uwierzytelnianie: Uwierzytelnianie przy użyciu parametrów połączenia, kluczy udostępnionych, sygnatur dostępu współdzielonego i usługi Azure Active Directory.
Współtworzenie
Zobacz CONTRIBUTING.md Storage, aby uzyskać szczegółowe informacje na temat kompilowania, testowania i współtworzenia tej biblioteki.
W tym projekcie zachęcamy do współtworzenia i zgłaszania sugestii. Współtworzenie w większości przypadków wymaga zgody na umowę licencyjną dotyczącą współautorów (CLA, Contributor License Agreement), zgodnie z którą współautor ma prawo udzielić i faktycznie udziela nam praw do używania wytworzonej przez siebie zawartości. Aby uzyskać szczegółowe informacje, odwiedź stronę cla.microsoft.com.
W tym projekcie przyjęto Kodeks postępowania oprogramowania Open Source firmy Microsoft. Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące kodeksu postępowania lub skontaktuj się z opencode@microsoft.com dodatkowymi pytaniami lub komentarzami.