Azure 函数 - 'AzureWebJobsServiceBusConnectionString' 丢失

Azure Function - 'AzureWebJobsServiceBusConnectionString' is missing

用例:

我有一个将由 'serviceBusTrigger' 触发的 Azure 函数。按照最佳实践,我在 'appsettings.json' 中有 Azure 服务总线连接字符串,同样在 Azure 函数应用程序的应用程序设置中。一切顺利!

现在,我想 运行 在本地使用该功能,我正在使用类似

的 cli

cd "my function folder path"

func run .\myfunction.cs

问题

启动但报错

'Microsoft.Azure.WebJobs.Host: 错误索引方法 'Functions.someFunction'。 Microsoft.Azure.WebJobs.ServiceBus:Microsoft Azure WebJobs SDK ServiceBus 连接字符串 'AzureWebJobsServiceBusConnectionString' 缺失或为空。'

问题

1) 是否可以保留我的设置并能够通过 'cli' 启动该功能 2) 我该如何解决这个错误 旁注:我知道 Azure 函数是建立在 webJob SDK 之上的,这个错误有点神秘。

附图显示功能设置,function.json,appsettings.json

enter image description here

感谢您的帮助!

我注意到您分享的图片存在一些问题:

连接字符串通常会出现在应用设置文件的连接字符串对象中,例如:

{
  "IsEncrypted": false,
  "Values": {
    "appsetting1": "test"
  },
  "ConnectionStrings": {
    "SomeConnectionString": "connectionstring"
  }
}

function.json无效。您的绑定应该是一个数组,例如:

{
    "bindings": [
        {
             ... ....
            "connection": "ConnectionName"
             ... ....
        }
    ]
}

您不能只指向 cs 文件来 运行 函数。 运行在你的函数中你仍然需要有以下结构:

 root
  |
  +-- functionname
  |   |-- function.json
  |   \-- run.csx (if working with the CSX model/just code)
  |
  +-- host.json
  +-- local.settings.json

从根目录,您可以使用 func run <functionname> 调用函数,其中函数名映射到文件夹名称。

文件名应该不是问题,但将其重命名为 local.settings.json,因为它已更改。

您可能还想看看 Azure Functions Tools for Visual Studio 2017,因为它会为您处理所有设置,并且仍然允许您从命令 运行 中使用创建的结构化,如果您愿意,可以使用 CLI。