Udostępnij za pośrednictwem


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 ErrorCodeelementem 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:

  1. Hello world: Enqueue, Dequeue, Peek i Update queue messages (lub asynchronicznie)
  2. 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.

Wrażenia