集成 Azure 服务总线主题和 Azure 函数

Posted

技术标签:

【中文标题】集成 Azure 服务总线主题和 Azure 函数【英文标题】:Integrating Azure Service Bus Topic and Azure Function 【发布时间】:2020-10-11 00:57:36 【问题描述】:

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

我的问题是:

    如何将 Azure Service Bus 与我创建的 Azure Function 集成?生成的代码中应该更改哪些属性? 如何在我的机器上本地向 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");

【问题讨论】:

【参考方案1】:

您必须更改树属性,并将它们添加到 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

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

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

【讨论】:

按照您的建议更改属性设置后,它在本地工作。我现在在 Azure 中托管了该应用程序。我不知道在哪里可以找到log.LogInformation 调用写入的日志。任何帮助表示赞赏。 我使用 Application Insights 来做到这一点docs.microsoft.com/en-us/azure/azure-functions/…,但如果您不想启用它,您可以在 Kudu->DebugConsole->Powersell 上查看日志,然后您将有一个文件夹调用“日志文件”。

以上是关于集成 Azure 服务总线主题和 Azure 函数的主要内容,如果未能解决你的问题,请参考以下文章

Azure 服务总线 - 发布到队列和事务范围内的主题

Azure 服务总线:使用函数、服务结构和 Web 作业? [关闭]

函数应用无法从 Azure 服务总线获取消息

如何删除 Azure 服务总线主题上的死信消息

Service Fabric Actor 订阅 Azure 服务总线主题

Azure 服务总线主题订阅者接收订单