Yas*_*sir 6 connection azure kudu azure-webjobs azure-functions
我在Visual Studio 2015中创建了一个Azure功能应用程序.该应用程序具有服务总线队列的触发器.当我在本地运行时,该应用程序运行良好.它能够从Service Bus队列中读取数据(通过名为AzureSBConnection的变量配置)并将其记录在我的数据库中.
但是在Azure中部署时,它会给我以下错误:
函数($ ServiceBusQueueTriggerFunction)错误:Microsoft.Azure.WebJobs.Host:错误索引方法'Functions.ServiceBusQueueTriggerFunction'.Microsoft.Azure.WebJobs.ServiceBus:Microsoft Azure WebJobs SDK ServiceBus连接字符串'AzureWebJobsAzureSBConnection'缺失或为空.
请注意,我的连接称为AzureSBConnection而不是AzureWebJobsAzureSBConnection.此外,连接在本地工作.最后,部署的文件看起来与本地文件完全相同.
Visual Studio结构如下所示:
function.json文件有一堆设置,如下所示:
然后在Appsettings.json文件中,我有以下内容:
为了部署,我将文件FTP到我的Azure中的功能应用程序的D:\ home\site\wwwroot位置.Kudu的最终结构如下:
如果我进入我的函数文件夹:
这是部署的function.json:
这是部署的appsettings:
部署的json文件与本地文件完全相同.但由于缺少AzureWebJobsAzureSBConnection,部署的版本出错了.我究竟做错了什么?
应用程序设置和连接字符串仅支持环境变量.
您需要确保AzureWebJobsAzureSBConnection在门户中的Function的应用程序设置中设置了环境变量:
然后在那里,您需要AzureWebJobsAzureSBConnection使用正确的连接字符串添加变量:
然后您可以通过以下代码访问此代码:
Environment.GetEnvironmentVariable(name, EnvironmentVariableTarget.Process);
Run Code Online (Sandbox Code Playgroud)
这将从appsettings.json或环境变量中获取值,具体取决于函数的执行位置,(本地调试或部署在Azure上)
| 归档时间: |
|
| 查看次数: |
3782 次 |
| 最近记录: |