實作 AZ-204 證照測驗準備的實驗課程,從實驗課程中精熟 AZ-204 的測驗重點以及工具操作。本次要實驗的是如何使用 Azure Azure Service Bus Queues。
Lab10 - Azure Service Bus Queues
詳細的實驗流程可以參考微軟在 Github上的專案
Create Service Bus Queue
建立 Service Bus Queue sbnamespacecs 並從 Shared access policies 複製 Primary Connection String 待會的程式端需要使用,
完成後建立一個 Queue messagequeue。
Messages Publish Console
dotnet new console --name MessagePublisher --output .
dotnet add package Azure.Messaging.ServiceBus --version 7.2.1
dotnet build
將 queue 的 Connection String 以及 queueName 輸入。
Program.cs
using System;
using System.Threading.Tasks;
using Azure.Messaging.ServiceBus;
namespace MessagePublisher
{
public class Program
{
private const string storageConnectionString = "<storage-connection-string>";
private const string queueName = "messagequeue";
private const int numOfMessages = 3;
static ServiceBusClient client;
static ServiceBusSender sender;
public static async Task Main(string[] args)
{
client = new ServiceBusClient(storageConnectionString);
sender = client.CreateSender(queueName);
using ServiceBusMessageBatch messageBatch =
await sender.CreateMessageBatchAsync();
for (int i = 1; i <= numOfMessages; i++)
{
if (!messageBatch.TryAddMessage(new ServiceBusMessage($"Message {i}")))
{
throw new Exception(
$"The message {i} is too large to fit in the batch."
);
}
}
try
{
await sender.SendMessagesAsync(messageBatch);
Console.WriteLine(
$"A batch of {numOfMessages} messages has been published to the queue."
);
}
finally
{
await sender.DisposeAsync();
await client.DisposeAsync();
}
}
}
}
執行 Console 將訊息發佈到 Event Bus Queue
dotnet run
從 Event Buq Queue 可以觀察到相關資訊:
Message Reader Console
dotnet new console --name MessageReader --output .
dotnet add package Azure.Messaging.ServiceBus --version 7.2.1
dotnet build
Program.cs
using System;
using System.Threading.Tasks;
using Azure.Messaging.ServiceBus;
namespace MessagePublisher
{
public class Program
{
private const string storageConnectionString = "*";
private const string queueName = "messagequeue";
private const int numOfMessages = 3;
static ServiceBusClient client;
static ServiceBusSender sender;
public static async Task Main(string[] args)
{
client = new ServiceBusClient(storageConnectionString);
sender = client.CreateSender(queueName);
using ServiceBusMessageBatch messageBatch =
await sender.CreateMessageBatchAsync();
for (int i = 1; i <= numOfMessages; i++)
{
if (!messageBatch.TryAddMessage
(new ServiceBusMessage($"Message {i}")))
{
throw new Exception($"The message {i} is too large to fit in the batch.");
}
}
try
{
await sender.SendMessagesAsync(messageBatch);
Console.WriteLine($"A batch of {numOfMessages} messages has been published to the queue.");
}
finally
{
await sender.DisposeAsync();
await client.DisposeAsync();
}
}
}
}
執行後可以將之前的訊息全部讀出:
Azure Azure Service Bus Queues 相關知識
…
實戰 Azure Azure Service Bus Queues 心得
…