Azure Function EventHubTrigger属性找不到事件集线器名称

问题描述:

我遇到一个问题,当我将函数发布到函数应用程序时(如果我只是在VS2017中运行它,本地工作正常),我的事件中心名称未找到。当我打开函数时,我在Azure门户中发布的函数上收到以下错误。Azure Function EventHubTrigger属性找不到事件集线器名称

enter image description here

这是我的Run方法的属性。

public static void Run([EventHubTrigger("%eventHubName%", Connection = "eventHubConnection")]string data, TraceWriter log) 

现在,如果我不包括%的周围包裹eventHubName,当我本地运行它会说,它无法找到eventhub(使用eventHubName字符串字面,而不是展望local.settings.json就像连接字符串一样),但它在发布时会起作用。我想避免将实际名称放在属性中,因为不同的环境将具有唯一的事件中心名称。

当您在本地开发时,Azure函数将使用local.settings.json文件。当您的功能应用程序在Azure上运行时,它将从应用程序设置中读取值。

使用%zzz%是阅读设置的正确方法,因此当您部署到Azure时,如果在应用程序设置中有一个名为eventHubName的设置,则会产生问题。

https://docs.microsoft.com/en-us/azure/app-service/web-sites-configure