1

用例:

我有一个将由“serviceBusTrigger”触发的 Azure 函数。遵循最佳实践,我在“appsettings.json”和 Azure 函数应用程序的应用程序设置中都有 Azure 服务总线连接字符串。一切都很好!

现在,我想在本地运行该函数,我正在使用 cli

cd "我的函数文件夹路径"

函数运行 .\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 的设置

在此处输入图像描述

谢谢您的帮助!

4

1 回答 1

2

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

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

{
  "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 创建的结构化,如果您希望。

于 2017-06-30T03:02:40.037 回答