Une fonction sans serveur pour mettre à jour un ou plusieurs indices d'algolis à partir de points de terminaison JSON à l'aide d'une fonction WebTask simple.
Vous devez d'abord installer le nœud et le npm.
Une fois installé, exécutez:
npm install serverless -g && npm install
Avant de pouvoir utiliser cette fonction, vous devez autoriser le fournisseur (webTask by Auth0). C'est extrêmement simple, il suffit de courir:
serverless config credentials --provider webtasks
On vous demandera un numéro de téléphone ou un e-mail. Vous recevrez immédiatement un code de vérification. Entrez le code de vérification et votre profil sera entièrement configuré et prêt à l'emploi.
Cette fonction a besoin de configurer ce qui suit:
secrets.yml
avec votre ID de demande d'algolie et la clé d'accès secret.indexes.js
avec une liste de vos index et leurs points de terminaison JSON. Pour créer votre fichier secrets.yml
, exécutez:
cp ./config/secrets.yml.stub ./config/secrets.yml
Ouvrez ensuite config/secrets.yml
et fournissez les valeurs pour ALGOLIA_APP_ID
et ALGOLIA_ADMIN_KEY
à partir de votre compte Algolia.
Ensuite, ouvrez config/indexes.js
et mettez à jour l'exemple d'index avec vos informations réelles d'index d'algolie. Par exemple,
[
{
name: "dist",
url: "https://example.com/index.json"
}
]
Pour déployer cette fonction en mode développement, exécutez:
serverless deploy
Pour déployer cette fonction avec des secrets de production, exécutez:
serverless deploy --stage prod --ALGOLIA_APP_ID=YOUR_APP_ID --ALGOLIA_ADMIN_KEY=YOUR_ADMIN_KEY
Par défaut, cette fonction fonctionnera toutes les heures. Vous pouvez mettre à jour cela comme vous le souhaitez en ouvrant serverless.yml
et en modifiant functions.main.events.schedule
.
Lors du déploiement de la fonction, Serverless vous fournit le point de terminaison WebTask que vous pouvez utiliser pour déclencher la mise à jour d'index.
Rendez-vous sur votre référentiel GitHub, ouvrez les paramètres , puis choisissez des webhooks dans la barre latérale.
Maintenant, chaque fois qu'un changement est poussé vers votre référentiel, cette fonction sera déclenchée pour déployer votre index d'algolie.
Remarque: Selon la durée de déploiement de votre site, cela peut entraîner la mise à jour de l'index prématurément. Pour résoudre ce problème, vous pouvez définir la variable de débouchement dans
secrets.yml
pour faire en sorte que la fonction d'attente x nombre de secondes avant l'exécution.