我试图设置简单的Azure函数来读取XML流并将其同步回数据库。我的计划是使用时间触发器每天执行一次函数。
然而,事情看起来不太好。即使我没有使用数据库,我也收到了以下错误:
[Error] Executed 'Functions.<func-name>' (Failed, Id=<func-id>, Duration=1ms)Value cannot be null. (Parameter 'connectionString')
我当前正在尝试执行以下函数:
module.exports = async function(context, req) {
context.res = {
body: "Success!"
};
};
一样的结果。我查不出来。
我已经将连接字符串添加到配置-〉连接字符串(根据消息,我以为我错过了)。
我的functions.json文件看起来像:
{
"bindings": [
{
"name": "myTimer",
"type": "timerTrigger",
"direction": "in",
"schedule": "0 0 * * * *"
},
{
"type": "http",
"direction": "out",
"name": "res"
}
]
}
我也试过运行一个C#函数-同样的结果。
我错过了什么?
3条答案
按热度按时间zour9fqk1#
缺少AzureWebJobsStorage应用程序设置。
解决方案:
1.创建存储帐户(或使用现有帐户)
1.转到功能应用程序的配置
1.使用连接字符串将AzureWebJobsStorage添加到您的存储帐户(可在存储帐户概述-〉访问密钥中找到)
6qqygrtg2#
在我的例子中,错误是
Microsoft.Extensions.Configuration.AzureAppConfiguration value cannot be null: parameter (connectionString)
发生这种情况是因为我在函数中安装了Microsoft.Extensions.Configuration.AzureAppConfiguration,以便将配置DI到主函数中。
Startup.cs
行string cs = Environment.GetEnvironmentVariable("MyDifferentConnectionString");
无法找到MyDifferentConnectionString
的环境变量,因此需要将其添加到函数配置中。1.转到应用程序配置(或创建一个)
1.访问键(在“设置”下)
1.复制连接字符串
1.转到您的功能
1.配置(在设置下)
1.使用环境变量的名称添加新的应用程序设置,然后粘贴值
1.保存并重新启动功能
y1aodyip3#
这是一个部署问题,我刚刚将appsettings.json/localsettings.json文件中的设置复制到配置部分。