azure webjobs sdk servicebus连接字符串“azurewebjobsazuresbconnection”丢失或为空

gxwragnw  于 2021-06-20  发布在  Kudu
关注(0)|答案(2)|浏览(455)

我在VisualStudio2015中创建了一个azure函数应用程序。该应用程序具有服务总线队列的触发器。当我在本地运行应用程序时,它运行得非常好。它能够从服务总线队列(通过名为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文件中,我有以下内容:

为了部署,我将文件ftped到d:\home\site\wwwroot位置,以便在azure中部署我的函数应用程序。Kudu的最终结构如下:

如果我进入我的函数文件夹:

以下是部署的function.json:

以下是部署的应用程序设置:

部署的json文件与本地文件完全相同。但是由于缺少azurewebjobsazuresbconnection,部署的版本出错了。我做错什么了?

tez616oj

tez616oj1#

它能够从服务总线队列(通过名为azuresbconnection的变量配置)读取数据,但在azure中部署时会出现以下错误:
将应用程序部署到azure函数后,应用程序将从环境设置中读取连接字符串。当前,appsettings.json中的连接设置不会自动更新环境设置。我们可以点击@flyte提到的[configure app settings]按钮来检查连接字符串是否配置成功。如果没有,您可以在应用程序设置框中手动添加。
请注意,我的连接称为azuresbconnection,而不是azurewebjobsazuresbconnection
请转到[集成]页检查[服务总线连接]是否配置成功。如果没有,您可以通过单击[新建]链接将其重置。

aoyhnmkz

aoyhnmkz2#

应用程序设置和连接字符串只支持环境变量。
您需要确保环境变量 AzureWebJobsAzureSBConnection 在门户中的函数应用程序设置中设置:

一旦到了那里,你需要添加 AzureWebJobsAzureSBConnection 具有正确连接字符串的变量:

然后您可以通过以下代码访问:

Environment.GetEnvironmentVariable(name, EnvironmentVariableTarget.Process);

这将从appsettings.json或环境变量中获取值,具体取决于从何处执行函数(本地调试或部署在azure上)

相关问题