Constructions Netlify automatisées uniquement lorsque vous en avez besoin – Meilleure programmation

Online Coding Courses for Kids

Un hook de génération est un point de terminaison d’URL unique que vous pouvez utiliser pour déclencher une génération et un déploiement de votre site. Vous pouvez générer une URL de hook de build à partir de la console Netlify sous les paramètres Build & Deploy du site:

Une fois que vous avez l’URL, il vous suffit de lui envoyer une demande POST et votre site sera déployé à partir de la branche choisie.

J’avais déjà une fonction lambda AWS chargée d’enregistrer le café sur un AWS DynamoDB J’ai donc mis à jour cette lambda pour envoyer également une demande POST au hook de génération si je voulais un redéploiement (si j’ai coché la case «devrait déclencher le déploiement» lors de l’ajout de la nouvelle boutique sur mon site Web).

Aller plus loin avec une application sans serveur AWS

Mon système initial fonctionnait parfaitement, mais parfois c’est amusant de sur-concevoir un projet parallèle.

Au lieu d’avoir une fonction lambda pour sauver la boutique et déclencher également la construction, je voulais une fonction lambda pour chaque responsabilité.

Le premier lambda sauverait la boutique, et le second lambda déclencherait la construction si un était requis. Faire en sorte que ces fonctions lambda communiquent entre elles était «simple» à l’aide d’AWS Service de notification simple (SNS).

Cela m’a laissé avec l’architecture suivante:

Photo de l’auteur.

Lorsqu’une boutique est ajoutée via le site Web, elle démarre toute une application sans serveur AWS:

  1. La passerelle API reçoit les données du formulaire et déclenche la PostShopLambda fonction.
  2. le PostShopLambda La fonction reçoit les données du formulaire et enregistre toujours la boutique dans la table DynamoDB.
  3. Si les données du formulaire triggerDeploy est vrai (la case à cocher a été cochée sur le formulaire), puis le paramètre PostShopLambda publiera également un message sur un sujet SNS spécifique.
  4. Une fois que le message atterrit sur le sujet SNS, l’abonnement TriggerDeployLambda verra le message et saura redéclencher une version et un déploiement du site à l’aide du webhook Netlify.

La plupart du travail est effectué par le PostShopLambda fonction. Il enregistre toujours la boutique dans la base de données et peut également publier un message SNS pour déclencher un déploiement si nécessaire.

Ces parties centrales de la fonction ressemblent à ceci:

Si un message est publié dans la rubrique SNS, l’abonnement TriggerDeployLambda sera invoquée.

Comme je l’ai mentionné plus tôt, un crochet de construction n’est qu’une URL à laquelle vous pouvez envoyer une demande POST, ce qui signifie TriggerDeployLambda la fonction est incroyablement simple:

Notez que l’URL a également un titre de déclencheur qui apparaît dans la liste de construction du site, ce qui permet de différencier facilement ces déploiements automatisés des autres.

Modèle d’application sans serveur AWS (SAM)

Tout cela a été construit en utilisant le Modèle d’application sans serveur (SAM) cela facilite la configuration d’applications sans serveur sur AWS.

L’ensemble de l’application est décrit dans un seul template.yaml fichier. Cela répertorie toutes les ressources AWS de l’application (les fonctions lambda, la table DynamoDB, etc.) et décrit également comment ces ressources interagissent entre elles via des abonnements, des autorisations, etc.

Le code complet de cet exemple se trouve sur GitHub.

Close Menu