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

How do I automatically create a subscription to a topic, if it doesn't already exist?

我在 Azure 门户上已有一个主题,但我没有任何订阅。 并且我在我的项目中写了一个函数来监听这个话题。

我想让它正常工作,以便在我没有手动创建与我在代码中指定的名称相同的主题的订阅时,我的代码会自动为我创建它。

当使用 Azure 服务总线触发器接收消息时,您可以使用队列或订阅主题。单独使用主题是行不通的,因为消息不能直接从主题中检索,只能发送到主题。因此,您需要为 ServiceBusTopicTrigger.

定义 TopicNameSubscriptionName

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

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

It is not possible to receive the messages directly from the Service Bus Topic.

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

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