Servir du contenu statique en mode Serverless (fonctions à la demande) dans Azure

Servir du contenu statique en mode Serverless (fonctions à la demande) dans Azure

Karim


Avec la mode actuelle autour des architectures Serverless initiées par AWS, on assiste à des transformations de ce type pour des applications web (surtout pour celles qui sont en mode SPA / Single Page Application) :


Dans cette expérience, je vais tenter de réaliser quelque chose de simple qui me permet de m'affranchir de la création de VM pour délivrer mon chatbot. Pour cela je vais utiliser Azure Functions Proxies en preview pour me lier à du stockage objet avec Azure Blob Storage :


Je pars donc de mon dépôt cloné localement du chatbot en PWA :


Je crée un compte de stockage avec Azure Blob Storage ayant ce container bot dans lequel je vais charger tout mon répertoire précedemment cloné :


J'utilise pour charger ce contenu, l'outil open source Azure Storage Explorer :


Je vérifie après configuration des droits sur le container que je dispose d'un accès à ma PWA avec le chatbot :


Je crée alors deux fonctions proxies Azure : une qui permet de pointer en backend sur ce blob storage et une autre qui permet la redirection vers le fichier par défaut index.html :




Dès lors je dispose via les Azure Functions, d'un nouveau endpoint d'accès au chatbot :

dont on voit la définition via le fichier proxies.json :

Et je peux vérifier que c'est OK !



Je peux également charger un nouvel endpoint personnalisé si je le souhaite depuis la console :

avec monitoring des process intégrés :

Mais j'ai également la possibilité pour accélérer la délivrance de ce contenu statique à d'éventuels utilisateurs d'un réseau de points de présence (CDN ou Content Delivery Network) :



En effet une association existe entre Azure et notamment Akamai pour mettre à disposition ces points de présence à travers le monde :




Avec ces tarifs :


Je crée donc un nouvel endpoint lié à ce CDN que me propose le réseau Akamai et pointant sur mon blob storage :


et je n'ai qu'à changer les paramêtres de mes fonctions pour qu'elles pointent maintenant sur ce réseau CDN :


avec l'endpoint fourni je teste l'accès direct (azure CDN) et indirect via les Azure Functions Proxies :


J'ai donc permis la délivrance de mon applications uniquement via des fonctions à la demande (mode serverless) et du stockage de type objet ...


A suivre ! ...




Report Page