【发布时间】:2016-09-14 21:31:09
【问题描述】:
我正在尝试创建一个由 http 请求触发的 Azure 函数,然后从 SQL 数据库中选择数据,然后返回数据。
我尝试设置一个基本示例,按照此处的示例简单地连接到数据库:https://msdn.microsoft.com/library/mt715784.aspx 它不是特定于 Azure 功能的,但我认为它应该运行:
var Connection = require('tedious').Connection;
var config = {
userName: 'userName',
password: 'password',
server: 'databaseServer.database.windows.net',
options: {encrypt: true, database: 'AdventureWorks'}
};
module.exports = function(context, req, saasSql) {
var connection = new Connection(config);
connection.on('connect', function(err) {
if(err) {
context.log(err);
} else {
context.log("Connected");
context.res = {
body: 'Connected'
};
context.done();
}
});
};
但是,当它运行时(在管理控制台中触发)。我收到一条日志消息,说明该功能已启动,然后日志中没有其他内容。底部的输出窗口给出状态:502 Bad Gateway 和此消息: 已为函数应用启用身份验证。在运行函数之前禁用身份验证。
我猜这是因为我没有调用 context.done() ,因为此功能的身份验证已关闭。我似乎无法弄清楚如何从连接尝试中获取任何错误信息等,我也尝试绑定到错误事件,但没有任何东西被触发。
更新
错误消息是 Azure Functions 代码中的错误,并显示了不正确的错误。但是,上面的代码仍然没有运行(并且没有抛出错误)。当我创建本地节点服务器并以这种方式运行时,它运行良好,因此在 Azure Functions 框架中运行似乎存在问题。有什么方法可以从 Azure Function 连接到 SQL DB?
【问题讨论】:
标签: node.js azure azure-sql-database azure-functions