2017-12-11 2 views
0

ラムダのコンテナを利用し、複数のインスタンス間のデータベース接続などを共有することについては、some articlesを経由しましたが、データベースにアクセスする複数のラムダ関数を持っていて、 APIゲートウェイがauthenticatorラムダ関数を呼び出し、次にinsert user関数を呼び出すなど、これらの関数が互いに呼び出すことを知っている同じ接続を共有する場合、これらの関数は両方ともデータベースを呼び出します。同じ接続を共有することは可能です?異なるラムダ関数間でデータベース接続を共有する方法

NodeJSを使用していますが、これをサポートするには別の言語を使用できます。

+0

これはできません。コンテナの再利用(リンク先の記事)であっても、同じ接続を共有する後続の呼び出しに含めることはできません。同時呼び出しでは、接続が共有されません。 –

+0

私の疑惑@MarkBを確認してくれてありがとう、私は推測するベストプラクティスは、接続を最小限に抑えるために、同じラムダ関数ですべてのデータベースクエリを持っていることが正しいですか? –

答えて

0

インスタンス間で接続を共有することはできません。並行呼び出しでは、同じインスタンスは使用されません。 しかしながら、呼び出し間の接続を共有することができます(同じコンテナ/インスタンス上で実行される可能性があります)。ただし、接続が(まだ)開いているかどうかを確認する必要があります。その場合は、再利用できます。それ以外の場合は新しいものを開きます。

dbへの接続が多すぎると心配している場合は、ラムダを終了するときに接続を閉じるだけで、毎回新しいインスタンスをインスタンス化します。&また、問題がある場合は並行性について考える必要があります。数週間前、AWSは関数単位で並行性を制御する可能性を追加しました。これはきちんとしたことです。

関連する問題