建立 Azure Service Bus

這篇主要是用來使用 Azure Service Bus 以幫助我們儲存所需的資訊

首先需要先在 azure 上面建立起所需的資源,如果找不到可以直接搜尋 Service Bus

建立完 Service bus 後,需要建立要用的佇列,可依你所需要的用途建立

比方 Finance 使用的就建一個,Employee用的就建另一個,兩個資料並不互相打架

在這邊可以設定資料保留多久後不取用會自動轉為無效資料 (這邊設定為 7 天)

甚至也可以看個人需要是否要讓 service bus 幫你偵測重複資料

如何使用

在設定\共用性原則 可以看到金鑰與連接字串的東西可以設定到你的應用程式上

 

在寫程式之前,可以先把 azure service queue sdk 的元件先用 nuget 裝起來,可參考官方文件

這邊使用的是 Message,當然你也可以使用 BrokerMessage 的型別,相關資訊可以看這裡

        public async Task<string> WriteServiceBusQueue(string name, string value)
        {
            var queueClient= new QueueClient(_ServiceBusConnectionString, _QueueBusName);

            var message = new Message(Encoding.UTF8.GetBytes($"{name}:{value}"));

            await queueClient.SendAsync(message);

        }

取出資料的部份亦可以參考微軟官網的做法(非同步),或是使用 ServiceBus Queue trigger Azure Function 的做法自動消化

這邊另外介紹一項工具可以讓我們測試 Service Bus 

裝好之後設定完剛剛在 azure 設定完的 connection string 即可進行測試

於 file => connect 新增你的連線即可

進行測試送出訊息至 佇列

送出後直接到 azure service bus 佇列上看即會發現已有一筆資料寫入了

再回到工具按右鍵可以使用 receive message 的功能

這邊使用的是 Peek(偷看): 看了訊息並不會不見,除非是使用的是 receive and delete (一般程式面使用的模式)

即可看到非常細節的資料,比方說 MessageId, Enqeueued Time...)

下一篇將會介紹如何使用 Service Bus Trigger 的方式來觸發 azure function

參考文件

https://docs.microsoft.com/zh-tw/azure/service-bus-messaging/service-bus-dotnet-get-started-with-queues

https://github.com/paolosalvatori/ServiceBusExplorer

https://markheath.net/post/migrating-to-new-servicebus-sdk

https://dotblogs.com.tw/acelee/2019/07/18/205733