[英]Windows Azure Service Bus Queues - MessageSender or QueueClient?
[英]Test Azure Service Bus Queues Locally with a subscription
如何在本地測試 Azure 服務總線隊列?
1.我必須將我們的隊列重命名為其他名稱,因為其他一些開發人員或已經在運行 function 可能會使用它
Example:
a) Original Queue: Product
b) Test Queue: Test
2.我們還有Azure個函數來取隊列,所以也重命名Service Bus Trigger。
但是,它仍然不起作用?
還有什么需要改的嗎?
我看到使用 Service Bus Explorer 發送的隊列消息,但它們不是事件句柄或響應我們的流程操作。
[FunctionName(nameof(TestAsync))]
public async Task TestRollAsync(
[ServiceBusTrigger("test", Connection = "ServiceBusConnection", IsSessionsEnabled = false)] Message sbMessage)
{
var cmessage = Encoding.UTF8.GetString(sbMessage.Body);
Test msg = null;
try
{
msg = JsonConvert.DeserializeObject<Test>(cmessage);
}
重命名隊列不是最方便的方法,因為它需要在您提交代碼時撤消更改並且容易出錯。 更好的選擇是使用特定於開發人員的 Azure 服務總線命名空間,它可以使用 MSDN/公司帳戶在標准層上進行配置。 您可以根據需要在標准層上擁有任意數量的命名空間。 當提供但未使用額外的命名空間時,除了每月 10 美元(或等值的貨幣)外,該服務不涉及任何費用。
使用每個開發人員的命名空間,您的代碼保持原樣,連接字符串(值)可以在本地的settings.json
文件中更改,不應提交到存儲庫。 這樣隊列名稱和連接字符串名稱保持不變,您可以在本地開發/調試
1.將隊列重命名為其他名稱,因為一些其他開發人員或已經在運行 function 可能會使用它。 (並且未設置 Azure 命名空間,如此處所列https://stackoverflow.com/a/63527807/12425844 )
例子:
a) 原始隊列:產品
b) 測試隊列:測試
2.我們還有Azure個函數來取隊列,所以也重命名Service Bus Trigger。
[ServiceBusTrigger("test", Connection = "ServiceBusConnection", IsSessionsEnabled = false)] Message sbMessage)
{
3.確保 Azure Functions 也在解決方案中運行。
4.創建一個Azure函數local.settings.json
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet"
},
"Host": {
"LocalHttpPort": 7071,
"CORS": "*"
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.