Оқиға
Mar 31, 11 PM - Apr 2, 11 PM
Ең үлкен Fabric, Power BI және SQL оқу іс-шарасы. 31 наурыз – 2 сәуір. $400 үнемдеу үшін FABINSIDER кодын пайдаланыңыз.
Бүгін тіркеліңізБұл браузерге бұдан былай қолдау көрсетілмейді.
Соңғы мүмкіндіктерді, қауіпсіздік жаңартуларын және техникалық қолдауды пайдалану үшін Microsoft Edge браузеріне жаңартыңыз.
Начало работы с клиентской библиотекой хранилища очередей Azure для .NET. Хранилище очередей Azure — это служба хранения большого количества сообщений для последующего извлечения и обработки. Выполните приведенные здесь действия, чтобы установить пакет и протестировать пример кода для выполнения базовых задач.
Справочная документация по API | исходный код библиотеки | пакет (NuGet) | примеры
Использование клиентской библиотеки хранилища очередей Azure для .NET:
В этом разделе описывается подготовка проекта для работы с клиентской библиотекой хранилища очередей Azure для .NET.
Создание приложения .NET с именем QueuesQuickstart
.
В окне консоли (cmd, PowerShell или Bash) выполните команду dotnet new
, чтобы создать консольное приложение с именем QueuesQuickstart
. Эта команда создает простой проект C# hello world с одним исходным файлом с именем Program.cs.
dotnet new console -n QueuesQuickstart
Перейдите в только что созданный каталог QueuesQuickstart
.
cd QueuesQuickstart
Оставаясь в каталоге приложения, установите пакет клиентской библиотеки Хранилища очередей Azure для .NET с помощью команды dotnet add package
.
dotnet add package Azure.Storage.Queues
Пакет клиентской библиотеки удостоверений Azure также необходим для бессерверных подключений к службам Azure.
dotnet add package Azure.Identity
using Azure;
using Azure.Identity;
using Azure.Storage.Queues;
using Azure.Storage.Queues.Models;
using System;
using System.Threading.Tasks;
Console.WriteLine("Azure Queue Storage client library - .NET quickstart sample");
// Quickstart code goes here
Запросы приложений к большинству служб Azure должны быть авторизованы. DefaultAzureCredential
Использование класса, предоставленного клиентской библиотекой удостоверений Azure, является рекомендуемым подходом для реализации бессерверных подключений к службам Azure в коде.
Вы также можете авторизовать запросы к службам Azure с помощью паролей, строка подключения или других учетных данных напрямую. Однако этот подход следует использовать с осторожностью. Разработчики должны быть старательными, чтобы никогда не предоставлять эти секреты в небезопасном расположении. Любой, кто получает доступ к паролю или секретному ключу, может пройти проверку подлинности. DefaultAzureCredential
предлагает улучшенные преимущества управления и безопасности по сравнению с ключом учетной записи, чтобы разрешить проверку подлинности без пароля. Оба варианта показаны в следующем примере.
DefaultAzureCredential
— это класс, предоставляемый клиентской библиотекой удостоверений Azure для .NET. Дополнительные сведения DefaultAzureCredential
см. в обзоре DefaultAzureCredential. DefaultAzureCredential
поддерживает несколько способов проверки подлинности и определяет, какой из них следует использовать в среде выполнения. Такой подход позволяет приложению использовать различные способы проверки подлинности в разных средах (локальной и рабочей) без реализации кода для конкретной среды.
Например, приложение может пройти проверку подлинности с помощью учетных данных входа Visual Studio в локальной среде, а затем использовать управляемое удостоверение после развертывания в Azure. Для такого перехода не требуется изменять код.
При разработке локально убедитесь, что учетная запись пользователя, которая обращается к данным очереди, имеет правильные разрешения. Вам потребуется участник данных очереди хранилища для чтения и записи данных очереди. Чтобы назначить себе эту роль, вам потребуется назначить роль администратора доступа пользователей или другую роль, включающую действие Microsoft.Authorization/roleAssignments/write . Роли Azure RBAC можно назначить пользователю с помощью портала Azure, Azure CLI или Azure PowerShell. Дополнительные сведения о доступных областях назначения ролей можно узнать на странице обзора области.
В этом сценарии вы назначите разрешения учетной записи пользователя, которая ограничена учетной записью хранения, чтобы обеспечить соблюдение принципа минимальных привилегий. В рамках этой практики пользователям предоставляются только минимальные необходимые разрешения, что позволяет создавать более защищенные рабочие среды.
В следующем примере роль участника данных очереди хранилища назначается учетной записи пользователя, которая предоставляет доступ для чтения и записи к данным очереди в учетной записи хранения.
Маңызды
В большинстве случаев для распространения назначения ролей в Azure потребуется минута или две, но в редких случаях может потребоваться до восьми минут. Если при первом запуске кода возникают ошибки аутентификации, подождите несколько минут и повторите попытку.
На портале Azure найдите свою учетную запись хранения, воспользовавшись основной панелью поиска или областью навигации слева.
На странице обзора учетной записи хранения выберите Контроль доступа (IAM) в меню слева.
На странице Контроль доступа (IAM) откройте вкладку Назначения ролей.
Выберите + Добавить в верхнем меню, а затем выберите Добавить назначение роли в появившемся раскрывающемся меню.
Используйте поле поиска, чтобы отфильтровать результаты для отображения нужной роли. В этом примере найдите участника данных очереди хранилища и выберите соответствующий результат, а затем нажмите кнопку "Далее".
В разделе Назначение доступа для выберите Пользователь, группа или субъект-служба и + Выбрать членов.
В диалоговом окне найдите имя пользователя Microsoft Entra (обычно ваш user@domain адрес электронной почты), а затем выберите в нижней части диалогового окна.
Нажмите кнопку Проверить и назначить, чтобы перейти на последнюю страницу, а затем еще раз Проверить и назначить, чтобы завершить процесс.
Служба Хранилище очередей Azure предназначена для хранения большого количества произвольных сообщений. Максимальный размер сообщения в очереди составляет 64 КБ. Очередь может содержать миллионы сообщений вплоть до лимита всей емкости учетной записи хранения. Очереди обычно используются для создания списка невыполненных заданий для асинхронной обработки. В Хранилище очередей предлагается три типа ресурсов:
На следующей схеме показана связь между этими ресурсами.
Используйте следующие классы .NET для взаимодействия с этими ресурсами:
QueueServiceClient
: QueueServiceClient
позволяет управлять всеми очередями в учетной записи хранения.QueueClient
: класс QueueClient
позволяет управлять отдельной очередью и сообщениями в ней.QueueMessage
: класс QueueMessage
представляет отдельные объекты, которые возвращаются при вызове ReceiveMessages
для очереди.В этих примерах фрагментов кода показано, как выполнять следующие действия с помощью клиентской библиотеки Хранилища очередей Azure для .NET:
Для локальной разработки убедитесь, что вы прошли проверку подлинности с той же учетной записью Microsoft Entra, которую вы назначили роли. Вы можете пройти проверку подлинности с помощью популярных средств разработки, таких как Azure CLI или Azure PowerShell. Средства разработки, с помощью которых можно пройти проверку подлинности на разных языках.
Войдите в Azure с помощью Azure CLI, выполнив следующую команду:
az login
После проверки подлинности можно создать и авторизовать QueueClient
объект, используя DefaultAzureCredential
для доступа к данным очереди в учетной записи хранения. DefaultAzureCredential
автоматически обнаруживает и использует учетную запись, вошедшего в систему на предыдущем шаге.
Чтобы авторизовать использование DefaultAzureCredential
, убедитесь, что вы добавили пакет Azure.Identity , как описано в разделе "Установка пакетов". Кроме того, обязательно добавьте директиву using для Azure.Identity
пространства имен в файле Program.cs :
using Azure.Identity;
Затем определите имя очереди и создайте экземпляр QueueClient
класса, используя DefaultAzureCredential
для авторизации. Этот клиентский объект используется для создания и взаимодействия с ресурсом очереди в учетной записи хранения.
Маңызды
Имя очереди может содержать только строчные буквы, цифры и дефисы и должно начинаться с буквы или цифры. Перед каждым дефисом должен быть знак без дефиса. Количество символов в имени должно быть от 3 до 63. Дополнительные сведения см. в статье Именование очередей и метаданных.
Добавьте следующий код в конец файла Program.cs . Обязательно замените <storage-account-name>
значение заполнителя:
// Create a unique name for the queue
// TODO: Replace the <storage-account-name> placeholder
string queueName = "quickstartqueues-" + Guid.NewGuid().ToString();
string storageAccountName = "<storage-account-name>";
// Instantiate a QueueClient to create and interact with the queue
QueueClient queueClient = new QueueClient(
new Uri($"https://{storageAccountName}.queue.core.windows.net/{queueName}"),
new DefaultAzureCredential());
Ескерім
Сообщения, отправленные QueueClient
с помощью класса, должны находиться в формате, который может быть включен в XML-запрос с кодировкой UTF-8. При необходимости параметр MessageEncoding можно задать для Base64 для обработки сообщений, не соответствующих требованиям.
QueueClient
С помощью объекта вызовите CreateAsync
метод для создания очереди в учетной записи хранения.
Добавьте этот код в конец метода Program.cs :
Console.WriteLine($"Creating queue: {queueName}");
// Create the queue
await queueClient.CreateAsync();
Приведенный ниже фрагмент кода асинхронно добавляет сообщения в очередь, вызывая метод SendMessageAsync
. Он также сохраняет SendReceipt
, возвращенный вызовом SendMessageAsync
. Это подтверждение используется для обновления сообщения далее в коде программы.
Добавьте этот код в конец файла Program.cs :
Console.WriteLine("\nAdding messages to the queue...");
// Send several messages to the queue
await queueClient.SendMessageAsync("First message");
await queueClient.SendMessageAsync("Second message");
// Save the receipt so we can update this message later
SendReceipt receipt = await queueClient.SendMessageAsync("Third message");
Чтобы просмотреть сообщения в очереди, вызовите метод PeekMessagesAsync
. Этот метод извлекает одно или несколько сообщений из начала очереди, не изменяя видимость этих сообщений.
Добавьте этот код в конец файла Program.cs :
Console.WriteLine("\nPeek at the messages in the queue...");
// Peek at messages in the queue
PeekedMessage[] peekedMessages = await queueClient.PeekMessagesAsync(maxMessages: 10);
foreach (PeekedMessage peekedMessage in peekedMessages)
{
// Display the message
Console.WriteLine($"Message: {peekedMessage.MessageText}");
}
Чтобы обновить содержимое сообщения, вызовите метод UpdateMessageAsync
. Этот метод позволяет изменить время видимости сообщения и его содержимое. Содержимое сообщение должно иметь формат строки в кодировке UTF-8 длиной не более 64 КБ. Вместе с новым содержимым сообщения передайте значения из SendReceipt
, сохраненного ранее в коде программы. Значения SendReceipt
указывают, какое сообщение следует обновить.
Console.WriteLine("\nUpdating the third message in the queue...");
// Update a message using the saved receipt from sending the message
await queueClient.UpdateMessageAsync(receipt.MessageId, receipt.PopReceipt, "Third message has been updated");
Вы можете узнать приблизительное количество сообщений в очереди. Метод GetProperties
возвращает свойства очереди, включая число сообщений. Свойство ApproximateMessagesCount
указывает приблизительное количество сообщений в очереди. Это число не ниже фактического количества сообщений в очереди, но может быть выше.
Добавьте этот код в конец файла Program.cs :
QueueProperties properties = queueClient.GetProperties();
// Retrieve the cached approximate message count
int cachedMessagesCount = properties.ApproximateMessagesCount;
// Display number of messages
Console.WriteLine($"Number of messages in queue: {cachedMessagesCount}");
Чтобы скачать ранее добавленные сообщения, вызовите метод ReceiveMessagesAsync
.
Добавьте этот код в конец файла Program.cs :
Console.WriteLine("\nReceiving messages from the queue...");
// Get messages from the queue
QueueMessage[] messages = await queueClient.ReceiveMessagesAsync(maxMessages: 10);
При необходимости можно указать значение, maxMessages
которое является числом сообщений, извлекаемых из очереди. Значение по умолчанию — 1 сообщение, а максимальное — 32 сообщения. Можно также указать значение, visibilityTimeout
которое скрывает сообщения от других операций за период ожидания. Значение по умолчанию — 30 секунд.
Удалите сообщения из очереди после их обработки. В нашем примере обработка сводится к выводу сообщения в консоль.
Перед обработкой и удалением сообщений приложение ожидает ввода от пользователя, вызывая метод Console.ReadLine
. Перед удалением ресурсов убедитесь на портале Azure, что они были правильно созданы. Все сообщения, которые явно не удалены, в конечном итоге становятся видимыми в очереди еще раз, чтобы еще один шанс обработать их.
Добавьте этот код в конец файла Program.cs :
Console.WriteLine("\nPress Enter key to 'process' messages and delete them from the queue...");
Console.ReadLine();
// Process and delete messages from the queue
foreach (QueueMessage message in messages)
{
// "Process" the message
Console.WriteLine($"Message: {message.MessageText}");
// Let the service know we're finished with
// the message and it can be safely deleted.
await queueClient.DeleteMessageAsync(message.MessageId, message.PopReceipt);
}
Следующий код очищает созданные приложением ресурсы, удаляя очередь с помощью метода DeleteAsync
.
Добавьте этот код в конец файла Program.cs :
Console.WriteLine("\nPress Enter key to delete the queue...");
Console.ReadLine();
// Clean up
Console.WriteLine($"Deleting queue: {queueClient.Name}");
await queueClient.DeleteAsync();
Console.WriteLine("Done");
Это приложение создает три сообщения и добавляет их в очередь Azure. Затем код получает список сообщений, извлекает и удаляет их, и наконец удаляет саму очередь.
В окне консоли перейдите к каталогу приложения, выполните его сборку и запустите его.
dotnet build
dotnet run
Вы должны увидеть выходные данные приложения, как показано ниже.
Azure Queue Storage client library - .NET quickstart sample
Creating queue: quickstartqueues-5c72da2c-30cc-4f09-b05c-a95d9da52af2
Adding messages to the queue...
Peek at the messages in the queue...
Message: First message
Message: Second message
Message: Third message
Updating the third message in the queue...
Receiving messages from the queue...
Press Enter key to 'process' messages and delete them from the queue...
Message: First message
Message: Second message
Message: Third message has been updated
Press Enter key to delete the queue...
Deleting queue: quickstartqueues-5c72da2c-30cc-4f09-b05c-a95d9da52af2
Done
Когда приложение приостановится перед получением сообщений, проверьте учетную запись хранения на портале Azure. Убедитесь, что сообщения находятся в очереди.
Нажмите клавишу Enter
, чтобы получить и удалить сообщения. При появлении запроса снова нажмите клавишу Enter
, чтобы удалить очередь и завершить демонстрацию.
Из этого краткого руководства вы узнали, как создавать очередь и добавлять в нее сообщения из асинхронного кода на .NET. Затем вы изучили процессы вставки, просмотра, получения и удаления сообщений. Наконец, вы узнали, как удалить очередь сообщений.
Руководства, примеры, краткие руководства и другую документацию можно найти здесь:
Оқиға
Mar 31, 11 PM - Apr 2, 11 PM
Ең үлкен Fabric, Power BI және SQL оқу іс-шарасы. 31 наурыз – 2 сәуір. $400 үнемдеу үшін FABINSIDER кодын пайдаланыңыз.
Бүгін тіркеліңізОқыту
Модуль
Azure-üzenetsorok felderítése - Training
Megtudhatja, hogyan integrálhatja az Azure Service Bus és az Azure Queue Storage szolgáltatást a megoldásba, és hogyan küldhet és fogadhat üzeneteket a .NET használatával.
Сертификаттау
Microsoft Certified: Azure Developer Associate - Certifications
A Microsoft Azure-ban végpontok közötti megoldásokat hozhat létre az Azure Functions létrehozásához, webalkalmazások implementálásához és kezeléséhez, az Azure Storage használatával történő megoldások fejlesztéséhez stb.