首页 > 解决方案 > 集成 Azure 服务总线主题和 Azure 函数

问题描述

我创建了一个Azure Function并选择Azure Service Bus Topic作为Visual Studio 2019中的触发器。我还在我的 Azure 帐户中创建了一个服务总线主题,并拥有Primary Connection StringPrimary Key

我的问题是:

  1. 如何将Azure 服务总线与我创建的Azure 函数集成?生成的代码中应该更改哪些属性?
  2. 如何在我的计算机上本地向Azure 服务总线主题发送消息?是否有任何应用程序(如SQL Management Studio)可以连接到我的Azure 服务总线资源?
[FunctionName("Function1")]
public static void Run([ServiceBusTrigger("mytopic", "mysubscription", Connection = "ConnectionString")]string mySbMsg, ILogger log)
{
   log.LogInformation($"C# ServiceBus topic trigger function processed message: {mySbMsg}");
}

标签: azureazure-functionsazure-servicebus-topics

解决方案


您必须更改树属性,并将它们添加到 local.settings.json: 您将拥有像这样的触发器:

[ServiceBusTrigger(
                topicName: "%MyServiceBus.Topic%",
                subscriptionName: "%MyServiceBus.Subscription%",
                Connection = "MyServiceBus.Connection")]

你的 local.settings.json 像这样:

 {  
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "PriorityBoardingFare.Topic": "TestEvent",
    "PriorityBoardingFare.Subscription": "Appl1cation1",
    "PriorityBoardingFare.Connection": "Endpoint=sb://xxxxxxxxx.windows.net/;SharedAccessKeyName=xxxxxxd;SharedAccessKey=adasdasdasdasdasdasd"    
  },
  "Host": {
    "LocalHttpPort": 21094
  }
}

https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local?tabs=windows%2Ccsharp%2Cbash#local-settings-file

要发送或管理服务总线,您现在有两种选择:

  1. 这是我们在工作中使用的,它是管理 SB 的社区工具:https ://github.com/paolosalvatori/ServiceBusExplorer
  2. 这是微软的工具:https ://docs.microsoft.com/en-us/azure/service-bus-messaging/explorer 。

推荐阅读