Upload
luca-congiu
View
21
Download
0
Embed Size (px)
Citation preview
ASP.NET + AZURE Function
Luca Congiu
ROME 24-25 MARCH 2017
ASP.NET & Azure Functions
// How To Use And Integrate Azure Functions With ASP.NET //
ASP.NET
Azure Functions Focal Points•Serveless•Cloud•HTTP
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.
Azure Functions & HTTP Call
HTTP
Azure Functions HTTP Triggers
ASP.NET
HTTP
Azure Functions & WebHooks
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)
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
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
ASP.NET WebHooks
ASP.NET
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
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
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
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
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
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
Come si inviano le Notifiche Eventi?Per Inviare le notifiche esistono due metodi:• NotifyAsync(eventName,data)• NotifyAllAsync(eventName,data)
DEMO ASP.NET
WEBHOOKS SENDER
ASP.NET WebHooks Receivers
WebHooks Receivers attualmente disponibili:
GitHub: https://github.com/aspnet/WebHooks
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}
WebHook Receiver Esempio Handler
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
GRAZIE Luca CongiuCommunity Leader DotNetCode
ContattiEmail: [email protected]: congiuluc