asp.net and azure function
TRANSCRIPT
![Page 1: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/1.jpg)
ASP.NET + AZURE Function
Luca Congiu
ROME 24-25 MARCH 2017
![Page 2: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/2.jpg)
ASP.NET & Azure Functions
// How To Use And Integrate Azure Functions With ASP.NET //
ASP.NET
![Page 3: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/3.jpg)
Azure Functions Focal Points•Serveless•Cloud•HTTP
![Page 4: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/4.jpg)
Azure Function – Input/Trigger
• BlobTrigger : elabora i BLOB di archiviazione di Azure quando vengono aggiunti ai contenitori.
• EventHubTrigger: risponde agli eventi inviati a un hub eventi di Azure. (È particolarmente utile negli scenari di strumentazione delle applicazioni, elaborazione dei flussi di lavoro o dell'esperienza utente e di IoT.
• Webhook generico : elabora le richieste HTTP di webhook da qualsiasi servizio che supporti webhook.
• Webhook GitHub : risponde a eventi che si verificano nei repository GitHub.
• HTTPTrigger : attiva l'esecuzione del codice usando una richiesta HTTP.• QueueTrigger : risponde ai messaggi che arrivano in una coda di
archiviazione di Azure.• ServiceBusQueueTrigger: connette il codice ad altri servizi di Azure o
locali rimanendo in ascolto sulle code di messaggi.• ServiceBusTopicTrigger: connette il codice ad altri servizi di Azure o
servizi locali mediante la sottoscrizione di argomenti.• TimerTrigger : esegue attività di pulizia o altre attività batch secondo una
pianificazione predefinita.
![Page 5: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/5.jpg)
Azure Functions & HTTP Call
HTTP
![Page 6: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/6.jpg)
Azure Functions HTTP Triggers
ASP.NET
HTTP
![Page 7: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/7.jpg)
Azure Functions & WebHooks
![Page 8: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/8.jpg)
Cosa sono i WebHooksWebHooks è un pattern HTTP estremamente leggero che fornisce un semplice modello di pubblicazione/sottoscrizione (pubblisher/subscriber) che permette di collegare insieme delle Web API e dei servizi SaaS (Software as Service).
Web(SUBSCRIB
E)
WebHook Sender
(Pubblisher)
WebHook Receiver(Subscrib
er)
![Page 9: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/9.jpg)
Come Funzionano i WebHooks
Quando si verifica un evento in un servizio, viene inviata una notifica sotto forma di una richiesta HTTP POST ai subscribers registrati. La richiesta POST contiene informazioni riguardanti l'evento che rende possibile, per il ricevitore, agire di conseguenza.
WebHookReceiver
Web(HTTP POST)
My APP
WebHookSender
![Page 10: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/10.jpg)
WebHooks: Sender/Receiver
Sender (Server)Si occupa della gestione delle sottoscrizioni e dell’invio delle notifiche ai relativi receiver.
Receiver (Client)Si occupa della ricezione delle notifiche inviate da un Server (Sender) WebHook.
I WebHooks possono essere di due tipologie:
WebHook Sender
WebHook Receiver
![Page 11: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/11.jpg)
ASP.NET WebHooks
ASP.NET
![Page 12: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/12.jpg)
ASP.NET WebHooksProgetto Open SourceGitHub: https://github.com/aspnet/WebHooks
Release History• 08/2015 Versione 1.2.0 Beta• 03/2016 Versione 1.2.0 RC• 11/2016 Versione 1.2.0 RTM• 01/2017 Versione 1.2.1 RTM
![Page 13: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/13.jpg)
In cosa consiste il progetto ASP.NET WebHooks?
Il progetto è un estensione di ASP.NET ed è un insieme di librerie (dll) che permettono di integrare i WebHooks all’interno di un’applicazione ASP.NET MVC 5/WebAPI 2:
• Microsoft.AspNet.WebHooks.CustomInsieme di librerie utilizzate per la creazione dell’infrastruttura necessaria per la gestione di un WebHook personalizzato (Custom)
• Microsoft.AspNet.WebHooks.ReceiversInsieme di librerie utilizzate per la ricezione di Notifiche da WebHooks Esterni
• Microsoft.AspNet.WebHooks.CommonInsieme di librerie comuni utilizzate sia da Microsoft.AspNet.WebHooks.Receivers che Microsoft.AspNet.WebHooks.Custom
![Page 14: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/14.jpg)
ASP.NET WebHooks Sender
Pacchetti NuGet:• Microsoft.AspNet.WebHooks.Custom.Mvc • Microsoft.AspNet.WebHooks.Custom.Api• Microsoft.AspNet.WebHooks.Custom.SqlStorage/AzureStorage
Caratteristiche Principali:• Gestisce le sottoscrizioni di degli utenti• Gestisce i filtri degli eventi da inoltrare ai
receivers• Gestisce la coda di invio delle notifiche ed il
reinoltro in caso di errore
![Page 15: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/15.jpg)
ArchitetturaASP.NET WebHooks Sender
IWebHookStoreInterfaccia per la gestione della persistenza dei dati:CRUD Sottoscrizioni WebHooks
IWebHookManagerInterfaccia per la
verifica dei WebHooks e per la gestione dell’invio delle notifiche
IWebHookSenderInterfaccia per l’invio delle notifiche
![Page 16: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/16.jpg)
ASP.NET WebHooks VS SignalR
ASP.NET
SignalR
Entrambe inviano notifiche ai propri client
I Client devono essere Connessi:Devono avere una connesione attiva per ricevere le notifiche
I Client non devono essere Connessi:Devono solo essere attivi per ricevere una chiamata HTTP POST
![Page 17: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/17.jpg)
Come si crea un WebHook Sender in ASP.NET?
1. Creare un progetto ASP.NET MVC/WEB API2. Aggiungere da nuget pacchetti:
• Microsoft.AspNet.WebHooks.Custom.Mvc • Microsoft.AspNet.WebHooks.Custom.Api• Microsoft.AspNet.WebHooks.Custom.SqlStorage/
AzureStorage3. Creare la definizione dei filtri per la registrazione4. Configurare l'inizializzazione dei servizi
![Page 18: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/18.jpg)
Come si inviano le Notifiche Eventi?Per Inviare le notifiche esistono due metodi:• NotifyAsync(eventName,data)• NotifyAllAsync(eventName,data)
![Page 19: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/19.jpg)
DEMO ASP.NET
WEBHOOKS SENDER
![Page 20: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/20.jpg)
ASP.NET WebHooks Receivers
WebHooks Receivers attualmente disponibili:
GitHub: https://github.com/aspnet/WebHooks
![Page 21: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/21.jpg)
Come si crea un WebHook Receiver in ASP.NET?1. Creare un progetto ASP.NET MVC/WEB API2. Aggiungere da nuget pacchetti:
• Microsoft.AspNet.WebHooks.Receivers • Microsoft.AspNet.WebHooks.ReceiversCustom
3. Creare Handler (WebHookHandler) che gestisca la chiamata dal WebHook
N.B.: Indirizzo di ricezione sarà del tipo:https://<host>/api/webhooks/incoming/<receiver>/{id}
![Page 22: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/22.jpg)
WebHook Receiver Esempio Handler
![Page 23: ASP.NET AND Azure Function](https://reader035.vdocuments.mx/reader035/viewer/2022062412/58ed41041a28ab5b2c8b45ad/html5/thumbnails/23.jpg)
Riferimenti Codice/Demo
Progetto GitHub WebHooks: https://github.com/aspnet/WebHooks
Azure Functions Try: https://github.com/aspnet/WebHooks
Demo/Codice WebHook Server: http://webhookserver.azurewebsites.nethttps://github.com/DotNetCodeIT/WebHooksServer/tree/master/WebHookServer
Demo/Codice WebHook Client: http://webhookclient.azurewebsites.nethttps://github.com/DotNetCodeIT/WebHooksServer/tree/master/WebHookClient