2017-06-30 182 views
1

使用案例:Azure的功能 - 'AzureWebJobsServiceBusConnectionString' 缺少

我有一个蓝色的功能将由 'serviceBusTrigger' 被触发。遵循最佳做法,我在'appsettings.json'中拥有Azure服务总线连接字符串,同样也在Azure功能应用程序的应用程序设置中。一切都很好!现在

,我想在本地运行的功能,我使用CLI像

CD “我的功能文件夹路径”

FUNC运行。\ myfunction.cs

问题

它启动但出现错误

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

问题

1)是否能够保持我的设置,并能够通过推出功能‘CLI’ 2)我如何解决这个错误 边注:据我所知,天青函数是建立在webJob SDK之上的,这个错误有点神秘。

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

enter image description here

谢谢您的帮助!

回答

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>的函数,其中functionname映射到该文件夹​​的名称。

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

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

+0

法比奥,感谢您的快速回复。从根文件夹运行它解决了问题(设置得到正确)。我的本地绑定是一个数组;然而,当形成一个例子(在截图中),我错过了数组括号。 –

+0

我有一种感觉,那就是你分享的内容,而不是你设置的内容。只是想打电话给他,以防万一。很高兴听到这个现在正在工作。 –