【问题标题】:Access SQL database from Azure Function in NodeJS从 NodeJS 中的 Azure Function 访问 SQL 数据库
【发布时间】: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


    【解决方案1】:

    错误消息"Authentication is enabled for the function app. Disable authentication before running the function." 表示您已启用Function App 的Authentication / Authorization feature。这将阻止门户能够调用您的 Http 函数,因为需要身份验证。请注意,此身份验证与您在 Functions Portal 中配置的功能级别身份验证不同。

    因此,目前唯一可行的方法是让您按照错误消息中的说明进行操作 - 禁用 Function App 级别的身份验证。我们的 repo 中有一个跟踪项来改进这一点 (issue here)。

    【讨论】:

    • 此功能的身份验证已关闭。我一直在对此进行一些测试,似乎在函数从不调用 done() 时也会显示该消息我猜是 Azure 在空闲一段时间后将其关闭。
    • 该错误消息非常特定于我描述的场景。如果您说您没有启用 Web App Authz 并且这种情况仍在发生,请在此处记录错误:github.com/projectkudu/AzureFunctionsPortal/issues
    • Issue raised,网络应用的身份验证已关闭。您是否有任何从节点函数连接到 SQL DB 的示例。我已经尝试过上述繁琐的方法,也尝试过集成,但无法正常工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-13
    • 2019-09-22
    相关资源
    最近更新 更多