2017-10-13 55 views
0

我遇到一個問題,當我將函數發佈到函數應用程序時(如果我只是在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就像連接字符串一樣),但它在發佈時會起作用。我想避免將實際名稱放在屬性中,因爲不同的環境將具有唯一的事件中心名稱。

回答

1

當您在本地開發時,Azure函數將使用local.settings.json文件。當您的功能應用程序在Azure上運行時,它將從應用程序設置中讀取值。

使用%zzz%是閱讀設置的正確方法,因此當您部署到Azure時,如果在應用程序設置中有一個名爲eventHubName的設置,則會產生問題。

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