2 votes

Comment puis-je invoquer une AWS::Lambda::Function uniquement lors de la création d'une AWS::Cloudformation::Stack ?

Contexte :

J'ai une pile avec un VPC et une instance RDS.

Objectif :

Je souhaite créer une nouvelle pile (par le biais d'un modèle distinct) qui, lors de sa création, invoque une fonction lambda qui se connecte à l'instance RDS susmentionnée et crée une nouvelle base de données.

Problème :

Je veux seulement que la lambda soit invoquée la première fois que la pile est créée, afin d'éviter d'exécuter une lambda pour créer une base de données qui existe déjà.

Informations complémentaires

J'utilise nodejs8.10 runtime pour le lambda, et je crée la base de données avec la bibliothèque mysql de node.

Mon modèle doit permettre uniquement aux nouvelles piles de créer des bases de données sur l'instance RDS.

2voto

Daniel Vassallo Points 142049

Vous pouvez définir un Ressource personnalisée soutenue par Lambda dans CloudFormation. Vous pouvez vérifier si la ressource est créée, mise à jour ou supprimée à partir de la fonction. Mais il serait préférable de rendre la fonction idempotente.

Dans le passé, j'ai utilisé ce projet github pour amorcer une ressource personnalisée. Je le recommande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X