Клиентская библиотека очередей службы хранилища Azure для .NET версии 12.13.1

Версия сервера: 12.02.2021, 2020-12-06, 2020-10-02, 2020-08-04, 2020-06-12, 2020-04-08, 2020-02-10, 2019-12-12, 2019-07-07 и 2019-02-02-02

Хранилище очередей Azure — это служба для хранения большого количества сообщений, к которым можно получить доступ практически из любой точки мира с помощью вызовов с проверкой подлинности по протоколам HTTP или HTTPS. Одно сообщение очереди может быть размером до 64 КБ, а очередь может содержать миллионы сообщений до общего ограничения емкости учетной записи хранения.

Исходный код | Пакет (NuGet) | Справочная документация по | API Документация по | REST API Документация по продукту

Начало работы

Установка пакета

Установите клиентую библиотеку очередей службы хранилища Azure для .NET с помощью NuGet:

dotnet add package Azure.Storage.Queues

Предварительные требования

Для использования этого пакета вам потребуется подписка Azure и учетная запись хранения .

Чтобы создать учетную запись хранения, можно использовать портал Azure, Azure PowerShell или Azure CLI. Ниже приведен пример с использованием Azure CLI:

az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS

Аутентификация клиента

Чтобы взаимодействовать со службой хранилища очередей Azure, необходимо создать экземпляр класса QueueClient. Библиотека удостоверений Azure позволяет легко добавить поддержку Azure Active Directory для проверки подлинности клиентов пакета SDK Azure с помощью соответствующих служб 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());

Дополнительные сведения о включении Azure Active Directory для проверки подлинности в службе хранилища Azure см. в нашей документации и в примерах.

Основные понятия

Наиболее частые способы использования хранилища очередей включают:

  • создание списка невыполненных работ для асинхронной обработки;
  • Передача сообщений между разными частями распределенного приложения

Потокобезопасность

Мы гарантируем, что все методы экземпляра клиента являются потокобезопасны и независимы друг от друга (руководство). Это гарантирует, что рекомендация по повторному использованию экземпляров клиента всегда будет безопасной, даже в разных потоках.

Дополнительные понятия

Параметры | клиента Доступ к ответу | Длительные операции | Обработка сбоев | Диагностики | Насмешливый | Время существования клиента

Примеры

Отправка сообщений

// 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!");

Получение сообщений

// 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);
}

Асинхронные API

Мы полностью поддерживаем синхронные и асинхронные 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!");

Кодирование сообщений

Эта версия библиотеки не кодирует сообщение по умолчанию. В версии 11 и предыдущих версиях, а также в Функции Azure по умолчанию используются сообщения в кодировке Base64. Поэтому рекомендуется использовать эту функцию для сценариев взаимодействия.

QueueClientOptions queueClientOptions = new QueueClientOptions()
{
    MessageEncoding = QueueMessageEncoding.Base64
};

QueueClient queueClient = new QueueClient(connectionString, queueName, queueClientOptions);

Устранение неполадок

Все операции службы очередей службы хранилища Azure будут вызывать исключение RequestFailedException при сбое с полезнымиErrorCode s. Многие из этих ошибок можно исправить.

// 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
}

Дальнейшие действия

Приступая к работе с нашими примерами очередей:

  1. Hello World: сообщения очереди постановки в очередь, вывода в очередь, просмотра и обновления (или асинхронно).
  2. Проверка подлинности. Проверка подлинности с помощью строк подключения, общих ключей, подписанных URL-адресов и Azure Active Directory.

Участие

Дополнительные сведения о создании, тестировании и участии в этой библиотеке см. в CONTRIBUTING.md хранилища.

На этом проекте приветствуются публикации и предложения. Для участия в большинстве процессов по разработке документации необходимо принять лицензионное соглашение участника (CLA), в котором указывается, что вы предоставляете нам права на использование ваших публикаций. Дополнительные сведения см. на странице cla.microsoft.com.

В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения см. в разделе часто задаваемых вопросов о правилах поведения или обратитесь к opencode@microsoft.com с любыми дополнительными вопросами или комментариями.

Просмотры