我按照以下网址中的步骤在Visual Studio 2017(非Azure门户)中本地创建了Azure功能应用。
我完全按照步骤创建了一个具有“ServiceBusTopicTrigger”的函数。我将以下内容添加到我的function.json
中{
“disabled”: false,
“bindings”: [
{
“name”: “mySbMsg”,
“type”: “serviceBusTrigger”,
“direction”: “in”,
“topicName”: “negotiatedaddcharge_test”,
“subscriptionName”: “clientdispatches”,
“connection”: “servicebusnac”,
“accessRights”: “manage”
}
]
}
我的appsenttings.json有以下
{
“IsEncrypted”: true,
“Values”: {
“servicebusnac”: “Endpoint=MyCompanyEndPointPlaceHolder”
}
}
当我在Visual Studio中运行该函数时,我不断收到错误消息“Microsoft.Azure.WebJobs.ServiceBus:Microsoft Azure WebJobs SDK ServiceBus连接字符串'AzureWebJobsservicebusnac'缺失或为空。”
只是为了它,我在values集合中添加了另一个名为“AzureWebJobsservicebusnac”的条目,但仍显示相同的消息。有什么我做错了吗?
另外,您如何对此功能进行单元测试?我无法访问单元测试项目中csx文件中的任何函数。
感谢。
编辑: 我添加了信息,以明确我在Visual Studio而不是Azure门户中创建函数。
答案 0 :(得分:3)
Function App将在Environment变量中搜索Service Bus连接字符串。您可以从Azure门户设置:
Platform features
标签。Application settings
。App settings
部分下添加一个包含连接名称和字符串的条目。 appsettings.json
文件仅用于支持本地开发,其中定义的设置不已发布到Azure。
答案 1 :(得分:0)
解决方案很简单;我实际上遇到了这个,它让我彻底难受了一段时间。
在appsettings.json
中,将"IsEncrypted"
从true
更改为false
。这应该可以解决您所看到的问题。
此方案的错误消息不太理想; Azure Functions团队已经有了一个错误修正。
希望这有助于遇到此问题的任何人。 (我发誓,这是我想出来之前一周,而且没有帮助。)