2017-09-27 4 views
1

Comment procéder pour créer les tables initiales avant une fonction lambda tente-t-elle d'effectuer des opérations de base de données? Je pense qu'une fois, par exemple, un modèle CloudFormation se termine et crée une pile, exécutez une fonction lambda auxiliaire qui crée les tables initiales.Création d'une table de base de données initiale pour AWS Lambda et RDS

Je viens de développer dans Node.js/Express et j'essaie d'ajuster l'architecture sans serveur. Habituellement, je voudrais juste initialiser les tables dans le fichier principal app.js, mais ne savez pas comment faire cela ici.

Répondre

0

Lorsque vous examinez la création d'une table initiale pour la base de données de votre application, vous devez également prendre en compte plusieurs points. Comment initialiser les tables de base de données et exécuter les données de départ.

  • Comment l'exécuter dans différentes bases de données (environnements multiples pour Test, Dev & etc.).
  • Comment faire la gestion des changements de scripts/configuration et l'exécution des changements.
  • Comment annuler une modification pour l'annulation.
  • Comment faire des DevOps (Intégrer avec CI/CD).

Compte tenu de ces faits, il est important de garder ces changements version contrôlée avec l'outillage nécessaire et les cadres pour les migrations, semeuses, Rollback & etc. seraient des avantages.

Vous pouvez déclencher ceci après la création de CloudFormation Stack, en utilisant le sujet SNS, pour déclencher les outils CI/CD & Pipeline (par exemple en utilisant Jenkins) pour exécuter les créations de table initiales et également effectuer les modifications et l'ensemencement suivants dans les tables. un moyen autonome.

Si vous utilisez Serverless Framework avec Lambda pour votre application, vous pouvez utiliser le plugin Serverless-Dynamodb-Local pour vous aider avec Seeding, Migrations & etc.(Nous l'avons également développé pour résoudre ce problème)

0

Vous pouvez le faire sans serveur ou sur serveur.

Serverless:

Si vous voulez aller Serverless, vous pouvez écrire une fonction lambda et choisissez pilote approprié pour votre fonction de nœud js en fonction du serveur RDS utilisé et exécuter vos requêtes. Vous devrez peut-être écrire des requêtes à sécurité intégrée pour qu'elles soient redondantes.

Utilisation de nœud-js avec Lambda pour écrire vos requêtes,

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create-deploy-nodejs.rds.html

Avec CloudFormation, vous pouvez automatiser le déploiement de lambda ainsi.

ServerBased:

Une fois CloudFormation est terminée, vous pouvez exécuter des scripts shell créer ro tables appropriées. (Les politiques remboursables peuvent s'appliquer ici aussi).

Espérons que ça aide.

+0

Serverless. Aurais-je invoqué manuellement cette fonction lambda pour créer les tables dans la base de données? –

+0

Oui, vous pouvez le faire. Assurez-vous que vous ne pouvez pas dépasser 5 minutes à courir. Si elle dépasse, vous pouvez passer des paramètres externes afin que vous puissiez savoir quoi faire sur chaque soleil. – Kannaiyan