Points d'échec et comment les surmonter
Félicitations, vous avez réussi jusqu'à présent.
Malgré la quantité de travail que nous avons fait, il y a quelques problèmes dans le processus. Énumérons-les.
En fait, notre règle de pare-feu default-allow-http autorise la connexion TCP d'entrée sur le port 80 à partir de n'importe quelle adresse IP source (0.0.0.0). Étant donné que notre VM n'est accessible que par le connecteur, nous pouvons restreindre la plage d'adresses IP source. La documentation
En fait, nous supposons que notre VM sera toujours disponible et que la connexion au moteur Meilisearch exécuté sur la VM sera réussie. Dans le cas où ces conditions ne sont pas remplies, nous avons besoin d'une sécurité intégrée. Nous pouvons ajouter un nombre de tentatives à la fonction cloud du gestionnaire post-événement.
Dans le cas où l'approche de nouvelle tentative n'aide pas. Nous pouvons ajouter un nouveau champ à notre document de publications qui peut nous aider à savoir si un document a été ajouté à la base de données Meilisearch. Cette approche peut impliquer un nouveau service comme Cloud Scheduler pour vérifier régulièrement si chaque document de la base de données Cloud Firestore est dans la base de données Meilisearch. L'indexation du nouveau champ aidera. Le problème est que si notre base de données grossit, cette opération deviendra très intensive.
Une autre option peut être d'utiliser Cloud Task. Chaque fois qu'une opération est effectuée dans Meilisearch, elle est asynchrone, nous ne connaissons donc pas le résultat immédiatement. Nous pouvons créer une tâche Cloud à chaque opération qui touchera une fonction cloud qui aura pour but de vérifier si l'opération est réussie. Cette fonction Cloud peut même se trouver dans notre API de publications.
Au cours des tutoriels, nous avons utilisé l'utilitaire de commande gcloud pour créer nos ressources. Il serait plus approprié d'utiliser un outil logiciel Infrastructure as Code comme Terraform ou Pulumi pour s'occuper de la création des ressources.
Merci d'être resté jusqu'au bout.