2017-01-22 11 views
0

AWSを使用していて、ラムダ機能が実行されているときにPSQL RDSインスタンスに接続しようとしています。私は、PG NPMモジュールを使用していますし、これは私のコードです:ラムダ関数によるPSQL RDSインスタンスへの接続?

exports.handler = (event,context, callback) => { 
 
    "use strict" 
 
    const pg = require('pg'); 
 
    const connectionStr = "postgres://rhadnum:[email protected]m:5432/discover_esports"; 
 
    var client = new pg.Client(connectionStr); 
 
    client.connect(function(err){ 
 
    if(err) { 
 
     callback(err) 
 
    } 
 
    callback(null, 'Connection established'); 
 
    }); 
 
};

私はそれを行う方法を年齢のために研究してきましたが、私は本当に特定の何かを見つけることができません。私はラムダのVPCアクセスを可能にするIAMの役割を追加しました.WSチュートリアルのように、私はVPCセキュリティグループ内のすべてのトラフィックを設定しましたが、私はまだこのようなタイムアウトエラーを受けています。

「にErrorMessage」:「2017-01-22T16:11:21.969Z 544e7fc4-e0bd-11e6-87e6-071c13fc2fc8タスクは30.00秒後にタイムアウトになりました」私は私のローカル機能をテストしてみた

、それがに接続して正常に動作しますDBと私がしたいことをやっているが、ラムダはそれをしないし、私はあまり理由もわからない。

アイデアをいただければ幸いです!

答えて

0

私はちょうどそれを解決しました。追加:あなたのラムダ関数で

context.callbackWaitsForEmptyEventLoop = false; 

+0

のためにそれを固定し、私は同じ問題を持っていたし、これはあまりにも私のためにそれを修正しました。どんな考え?私はこれをどこに追加しなければならないのだろうかと思っています。 – rhlsthrm

+0

ラムダの特有の問題は、コールバックが呼び出される前にイベントループが空になるまで待機することです。これにより、イベントループが空になるのを待つことなく、コールバックを呼び出すときに終了することが保証されます。理解している限り非同期の処理を行うときにのみ必要です –

関連する問題