如果主题的订阅尚不存在,如何自动创建它?

时间:2019-11-26 15:09:23

标签: azure azureservicebus

我在azure门户上已有一个主题,但是没有任何订阅。 而且我在项目中编写了一个侦听此主题的函数。

我想使其正常运行,以防万一我没有手动创建与我在代码中指定的名称相同的主题的订阅,我的代码将自动为我创建它。

2 个答案:

答案 0 :(得分:0)

在使用Azure Service Bus触发器接收消息时,可以将队列或主题与订阅一起使用。由于无法直接从主题中检索消息,而只能将其发送到主题,因此仅主题将无法工作。因此,您需要为TopicName定义SubscriptionNameServiceBusTopicTrigger

主题和订阅都必须提前创建。 Functions SDK不会为您创建它。如果没有适当的主题/订阅组合来收听,则无法触发该功能。您可以通过几种方式来做到这一点。其中之一是Azure CLI commands

答案 1 :(得分:0)

可以将消息发送到服务总线主题,并且只能从该主题内的订阅接收消息。只能为服务总线队列和主题订阅创建带有服务总线触发器的Azure功能。

  

不可能直接从服务总线主题接收消息。

以下解决方法可能对您有帮助

  1. 使用事件网格触发器或Http触发器创建Function App。
  2. 功能应用程序应使用以下方法获取服务主题 Microsoft.ServiceBus SDK。
  3. 如果该主题的订阅计数为零,请创建一个主题订阅。
  4. 在将消息发送到主题之前,必须先触发创建的函数。