2016-09-08 6 views
0

http要求によってトリガーされ、SQLデータベースからデータを選択してデータを返すAzure関数を作成しようとしています。NodeJSの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(); 
     } 
    }); 
}; 

ただし、これが実行されると(管理コンソールで起動されます)。私は、ログメッセージが表示され、その機能が開始した後、ログには何も表示されません。一番下の出力ウィンドウにStatus:502 Bad Gatewayとこのメッセージが表示されます。 機能appで認証が有効になっています。機能を実行する前に認証を無効にしてください。

私はcontext.done()を呼び出さないので、この機能では認証がオフになっているからです。私はどのように接続の試行から何らかのエラー情報などを得る方法を考えることができない、私はエラーイベントにもバインドしようとしましたが、何も起きません。

UPDATE

エラーメッセージは、Azureの機能コードのバグだったと誤ったエラーが表示されました。ただし、上記のコードはまだ実行されません(エラーはスローされません)。ローカルノードサーバーを作成してその方法を実行すると、Azure関数フレームワークで実行する際の問題のように見えます。 Azure関数からSQL DBに接続する方法はありますか?

答えて

0

エラーメッセージ"Authentication is enabled for the function app. Disable authentication before running the function."は、機能アプリのAuthentication/Authorization featureを有効にしたことを示します。これにより、認証が必要なため、ポータルがHttp関数を呼び出せなくなります。この認証は、機能ポータルで設定した機能レベルの認証とは異なります。

現在のところ、これが機能する唯一の方法は、エラーメッセージに「機能アプリケーションレベルの認証」を無効にするように指示することです。これを改善するためのレポの追跡項目があります(issue here)。

+0

この機能の認証は既にオフになっています。私はこれについていくつかのテストを行ってきましたが、関数がdone()を呼び出さないときにもメッセージが表示されるようです。一定期間アイドル状態にしてからAzureがシャットダウンすると思います。 – smuff

+0

このエラーメッセージは、私が説明したシナリオにかなりのものです。 Web App Authzを有効にしていないと言われてもこれが起こっている場合は、https://github.com/projectkudu/AzureFunctionsPortal/issuesにバグを記録してください。 – mathewc

+0

[問題提起](https://github.com/projectkudu/AzureFunctionsPortal/issues/548)、ウェブアプリケーションの認証がオフになっています。ノード関数からSQL DBに接続する例はありますか?私は上記の退屈なアプローチと統合を試みましたが、動作するものは何も得られません。 – smuff

関連する問題