服务总线触发器使用变量值作为主题和订阅未触发
Service Bus Trigger using variable values for topic and subscription not firing
我有一个相对简单的 Azure 函数,它根据主题和订阅名称从服务总线中提取消息 - 这在本地调试时非常有效,但一旦部署,该函数就不会触发。没有错误,消息继续原封不动地留在服务总线上。
该函数本身只是将消息从主题中提取出来,对其进行反序列化并将生成的对象传递给将 add/update CosmosDB 项目的服务。
[FunctionName("PullFromServiceBus")]
public async Task Run([ServiceBusTrigger("%TopicName%", "%SubscriptionName%", Connection = "AzureWebJobsServiceBus")] string message)
{
_logger.LogInformation($"C# ServiceBus topic trigger function processed message: {message}");
var obj = JsonConvert.DeserializeObject<MyClass>(message);
await AddOrUpdate(obj);
}
在 Azure 门户的应用程序设置中,我有名为“TopicName”和“SubscriptionName”的设置,其中包含我需要的值。
我看到 证实我的方法应该是正确的,但我无法弄清楚为什么该功能没有触发。谁能告诉我为什么?
而不是 "%TopicName%"
只是尝试发送“TopicName”,这是应用程序设置中的实际主题名称。
可能是触发器正在寻找名称为 %TopicName%
的主题,而不是应用程序设置中的主题。
关于如何在功能中使用应用程序设置,您可以参考以下article。
希望这对遇到同样问题的其他人有所帮助。我认为这是一个部署问题,因为这是由函数应用程序的 bin 文件夹中的 extensions.json 文件中缺少一行引起的。
将以下行添加到 extensions.json 后,触发器开始工作,无需任何进一步更改。
{ "name": "ServiceBus", "typeName":"Microsoft.Azure.WebJobs.ServiceBus.ServiceBusWebJobsStartup, Microsoft.Azure.WebJobs.Extensions.ServiceBus, Version=5.5.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8"}
我有一个相对简单的 Azure 函数,它根据主题和订阅名称从服务总线中提取消息 - 这在本地调试时非常有效,但一旦部署,该函数就不会触发。没有错误,消息继续原封不动地留在服务总线上。
该函数本身只是将消息从主题中提取出来,对其进行反序列化并将生成的对象传递给将 add/update CosmosDB 项目的服务。
[FunctionName("PullFromServiceBus")]
public async Task Run([ServiceBusTrigger("%TopicName%", "%SubscriptionName%", Connection = "AzureWebJobsServiceBus")] string message)
{
_logger.LogInformation($"C# ServiceBus topic trigger function processed message: {message}");
var obj = JsonConvert.DeserializeObject<MyClass>(message);
await AddOrUpdate(obj);
}
在 Azure 门户的应用程序设置中,我有名为“TopicName”和“SubscriptionName”的设置,其中包含我需要的值。
我看到
而不是 "%TopicName%"
只是尝试发送“TopicName”,这是应用程序设置中的实际主题名称。
可能是触发器正在寻找名称为 %TopicName%
的主题,而不是应用程序设置中的主题。
关于如何在功能中使用应用程序设置,您可以参考以下article。
希望这对遇到同样问题的其他人有所帮助。我认为这是一个部署问题,因为这是由函数应用程序的 bin 文件夹中的 extensions.json 文件中缺少一行引起的。
将以下行添加到 extensions.json 后,触发器开始工作,无需任何进一步更改。
{ "name": "ServiceBus", "typeName":"Microsoft.Azure.WebJobs.ServiceBus.ServiceBusWebJobsStartup, Microsoft.Azure.WebJobs.Extensions.ServiceBus, Version=5.5.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8"}