
A novembre, ho tenuto una conferenza a Live! 360 su come creare un semplice consumatore webhook utilizzando Azure Functions. Questo post del blog riassumerà quella conferenza e distillerà le informazioni in modo che tu possa comprendere i concetti di base delle Azure Functions.
Interfaccia Webhook di Azure Functions
A novembre, ho tenuto una conferenza a Live! 360 su come creare un consumatore di webhook di base utilizzando le Azure Functions. Questo post sul blog ripercorrerà quella conferenza e distillerà i contenuti in modo che tu possa comprendere le basi di Azure Function, e estendere la soluzione del framework trovata su Github.
Cosa sono i Webhooks?
Perché le funzioni serverless?
Le funzioni serverless sono un'ottima innovazione per aiutare a distribuire rapidamente soluzioni riducendo al contempo il carico per le organizzazioni. La mancanza di hardware da mantenere è un grande vantaggio, e le funzioni serverless sono in grado di gestire flussi di traffico imprevedibili. Sono facili da distribuire e aggiornare, quindi puoi iniziare a funzionare rapidamente.
Sinergia!
Combinare webhook e funzioni serverless rende molto facile creare ecosistemi ricchi per l'automazione o l'interazione con l'utente. Essere in grado di avvalersi degli eventi e dei dati generati da tutti questi sistemi disparati elimina la necessità di middleware complicati rendendo al contempo molto facile incorporare codice ed eventi personalizzati.
Azure Functions Basics
Azure Functions possono essere create attraverso la Azure Console o Visual Studio. Raccomando di provare entrambi per familiarizzare con le esperienze. Una delle cose belle della creazione di qualcosa nella Azure Console è che puoi scaricare la risultante Azure Function come file di soluzione di Visual Studio. Visual Studio è lo stesso IDE familiare e potente che conosci e ami.
Ci sono vantaggi in entrambi i metodi. La console di Azure Function ti dà accesso diretto per controllare i parametri dell'operazione della funzione da risorse disponibili a limiti di utilizzo mensile per il controllo dei costi. Tutte queste opzioni possono essere impostate e manipolate da Visual Studio tramite il file host.json e le variabili d'ambiente.
Creare un Basic Webhook Consumer
Step 1
Crea una nuova soluzione di Visual Studio e aggiungi un nuovo progetto a quella soluzione.

Step 2
Fai clic con il tasto destro sul nodo del progetto e aggiungi un nuovo elemento. Scegli Azure Function.

Step 3
Ora hai un progetto Visual Studio molto familiare. Dovresti avere un modello per una funzione Azure di base C#. È il momento di costruire del codice per utilizzare il tuo webhook.

Step 4
Effettua il debug localmente. Esatto, puoi effettuare il debug di questo elemento localmente con tutti i familiari strumenti di debug e introspezione di Visual Studio. Fai attenzione alla console di debug, poiché contiene molte informazioni preziose su ogni chiamata che effettui alla tua funzione durante i test locali.

Step 5
Pubblica la funzione Azure. Fai clic con il tasto destro sul nodo del progetto e seleziona Pubblica. Scegli Azure Function e crea nuovo. Nota che potresti anche aggiornare una funzione esistente. La funzione apparirà ora nella tua console di Azure.

Potenziali Pitfalls
Il problema più comune che colpisce le persone quando lavorano con il consumo di webhook e le funzioni serverless è che la funzione dura troppo a lungo. Questo causa che la funzione diventi molto costosa o fallisca completamente perché il POST del webhook scade. Ci sono alcune cose che puoi fare per gestire questi problemi.
I consumatori di webhook dovrebbero essere eseguiti in modo asincrono. I dati dovrebbero essere ingeriti il più rapidamente possibile e poi elaborati. L'errore comune di progettazione è cercare di elaborare i dati in tempo reale mentre arrivano. Questo funziona fintanto che i dati hanno una dimensione costante e piccola, ma se la dimensione dei dati può aumentare o essere incoerente, allora è meglio assicurarsi che i dati vengano ricevuti e la richiesta HTTP venga risolta affinché non si verifichino timeout.
Un'altra cosa che può aiutare a mitigare i processi di lunga durata è memorizzare i dati inviati e utilizzare la funzione serverless per avviare un processo containerizzato usando qualcosa come Azure Container Services (AKS) per gestire le parti di lunga durata. Usando questo design, la funzione serverless dovrebbe avviare e dimenticare il container, lasciando che il container pubblichi i suoi risultati o su un log o su un altro servizio di notifica a tua scelta. Questo mantiene la funzione serverless il più breve possibile pur consentendo che avvengano processi complicati.
Accendiamo questa candela
Ecco qua. Ora puoi andare avanti e creare il tuo ricco ecosistema usando funzioni serverless e webhook. Di seguito è riportato un elenco di altre risorse per aiutarti ad approfondire le Azure Functions.
-Nick Zimmerman
ps – di seguito sono riportate alcune risorse aggiuntive sulle Azure Functions che potresti trovare interessanti – divertiti!