我遇到的问题是,当我将函数发布到函数应用程序时,找不到我的事件中心名称(如果我只是在VS2017中运行它,它在本地工作正常)。当我打开函数时,我收到了天蓝门户中已发布函数的以下错误。
这是我的Run方法的属性。
public static void Run([EventHubTrigger("%eventHubName%", Connection = "eventHubConnection")]string data, TraceWriter log)
现在,如果我不包含在eventHubName中包含的%',当我在本地运行它时,它会说它找不到eventhub(使用eventHubName字符串而不是查看local.settings。 json喜欢连接字符串),但它在发布时会起作用。我想避免将实际名称放在属性中,因为不同的环境将具有唯一的事件中心名称。
答案 0 :(得分:1)
在本地开发时,Azure Functions将使用local.settings.json
文件。当您的功能应用程序在Azure上运行时,它将从“应用程序设置”中读取值。
使用%zzz%
是读取设置的正确方法,因此当您部署到Azure时,如果您在“应用程序设置”中有一个名为eventHubName
的设置,这会让我产生疑问。
https://docs.microsoft.com/en-us/azure/app-service/web-sites-configure