Azure Function EventHubTriggerAttribute 未使用 local.settings.json 中的事件中心名称

Azure Function EventHubTriggerAttribute not using event hub name from local.settings.json

我遇到一个问题,我的 EventHubTriggerAttribute 不再使用我的 local.settings.json 文件来填充属性中的事件中心名称。这是我得到的错误:

在上面的错误中,它正在寻找 ddhubnamespace.servicebus.windows.net/eventhubname,它实际上应该是 ddhubnamespace.servicebus.windows.net/ddhub

这是 TriggerAttribute 中的事件中心名称:

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

这是使用 local.settings.json 文件,我必须从这里获取 eventHubName:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_EXTENSION_VERSION": "~1",
    "eventHubConnection": "Endpoint=sb://ddhubnamespace.servicebus.windows.net/;...",
    "eventHubName": "ddhub",

如果在属性内部,我将 "eventHubName" 切换为 local.settings.json ("ddhub") 中的实际事件中心名称。该函数将 运行 成功。此外,将属性中的连接 属性 设置为 json 名称将从 json 获取值。知道为什么我的 eventhubname 不再从 json 中提取,而是将其作为文字字符串吗?

要从配置文件中获取值,您应该在属性参数中用%标记它:

[EventHubTrigger("%eventHubName%", Connection = "eventHubConnection")]