Naguib Ihab
Naguib Ihab

Reputation: 4496

How to share database connection between different lambda functions

I went through some articles about taking advantage of lambda's container and sharing things like database connection between multiple instances, however, what if I have multiple lambda functions accessing the database and I want to have them share the same connection knowing that these functions call each other, for example, an API gateway calls the authenticator lambda function and then calls the insert user function, both of these functions make calls to the database, is it possible for them to share the same connection?

I'm using NodeJS but I can use a different language if it would support that.

Upvotes: 1

Views: 1637

Answers (1)

DrEigelb
DrEigelb

Reputation: 588

You can't share connections between instances. Concurrent invocations do not use the same instance. You can however share connections between invocations (which might be executed on the same container/instance). However, there you have to check if you connection is (still) open, in which case you can reuse it. Otherwise open a new one.

If you are worried about too many connections to your db just close the connections when you exit your lambda & instantiate new ones every time. You may also need to think about concurrency if that is a problem. A few weeks ago AWS added the possibility to control concurrency on a per function basis, which is neat.

Upvotes: 2

Related Questions