簡體   English   中英

通過訂閱在本地測試 Azure 服務總線隊列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM