aws / aws/aws-lambda-roadmap

[Lambda] Support for a Function Shutdown lifecycle phase

Ouverte
#69 0 commentaires 19 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Aucune donnée de langage
Étoiles
196
Forks
5
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

### Community Note

* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request
* Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
* If you are interested in working on this issue or have submitted a pull request, please leave a comment

**Tell us about your request**
Lambda Functions currently have support for a Function Init step as part of the INIT phase as outlined [here](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtime-environment.html)

This step is most commonly used for establishing connections to other resources such as Databases

However, there is no equivalent Function Shutdown step as part of the SHUTDOWN phase.
This could be used to add symmetry to Init where database connections can be closed.

**Which service(s) is this request for?**
AWS Lambda

**Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?**
We want to be able to manage our database connections in a cleaner manner. Currently Lambdas can open database connections on Init, but we have no clean way of closing the connection.

Either we open and close the connection as part of the request, or, we leave the connection open and wait for the server to close it after it is marked as idle.

This creates connection management issues with servers where there appears to be a larger number of in-use connections than there really are.

Allowing the Lambda code to participate in the Shutdown phase would allow the function to clean up after itself and better manage system resources.

**Are you currently working around this issue?**
We carefully manage various client connection settings such as idle timeouts, and live with the fact that our number of open connections is often not completely representative of active connections.

**Additional context**
Lambda extensions are able to participate in Shutdown, it appears that it is just function code that cannot officially do that.

However, there are documented workarounds such as those found in [aws-samples/graceful-shutdown-with-aws-lambda](https://github.com/aws-samples/graceful-shutdown-with-aws-lambda). So it doesn't feel like a stretch to make this an officially supported behaviour with more explicit documentation and no requirement for an extension to first be added.

**Attachments**
If you think you might have additional information that you'd like to include via an attachment, please do - we'll take a look. (Remember to remove any personally-identifiable information.)

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par la documentation de l’environnement d’exécution AWS Lambda et comparez les phases INIT et SHUTDOWN qui y sont documentées. Examinez le contournement aws-samples/graceful-shutdown-with-aws-lambda ainsi que la note indiquant que les extensions Lambda peuvent participer à l’arrêt. La tâche est terminée lorsque la demande de la feuille de route dispose d’une voie définie et officiellement prise en charge pour le nettoyage des fonctions, avec une documentation mise à jour et sans contournement d’extension requis.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
aws
Domaine
cloud
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.