0

私は現在、RDSのMySQLデータベースからの接続/クエリにsequelizeを利用してAWS Lambda関数を使用しています。AWSラムダ関数との連続接続を維持する(または初期接続を高速化する)方法は?

すべての機能は意図したとおりに動作しますが、非アクティブ期間が経過した後の最初の接続では、起動には少なくとも5秒かかります。後続のラムダ呼び出しは速いので、接続が永続化されてプールされていると思われます。

これはちょっと迷惑なので、接続を高速化するか、ラムダを構成して接続が永続的になるように最適化できるかどうかは疑問です。

"use strict" 
var Sequelize = require('sequelize') 

var database = 'participantData', 
    host = 'hostname', 
    username = 'username', 
    password = 'blah' 

var sequelize = new Sequelize(database, username, password, { 
    host: host, 
    dialect: 'mysql', 
    logging: console.log('Query Logged') 
}) 

var Resource = sequelize.define('resource', { 
    program_name: { type: Sequelize.STRING }, 
    geocoded_address: { type: Sequelize.STRING } 
}) 

exports.handler = function(event, context){ 
    Resource.findAll({ 
    //some filter 
    }) 
    .then((res) => { 
     context.succeed(JSON.stringify(res)) 
    }) 
    .catch(error => console.log(error)) 
} 

答えて

4

いいえいいえ、あなたはLambda permanentの基本的な仕組みのために接続できません。しかし、ラムダの起動時間や再利用などを最適化することができます。https://www.reddit.com/r/aws/comments/49l91l/lambda_functions_in_vpc_cold_boot_times_of_10/https://aws.amazon.com/blogs/compute/container-reuse-in-lambda/

私の推測では、コンテナの再利用を続けているので、しばらくお待ちください。

+0

これはまさに私が取り組んでいる問題です。リソースをありがとう! –

関連する問題