24
ASP.NET + AZURE Function Luca Congiu ROME 24-25 MARCH 2017

ASP.NET AND Azure Function

Embed Size (px)

Citation preview

Page 1: ASP.NET AND Azure Function

ASP.NET + AZURE Function

Luca Congiu

ROME 24-25 MARCH 2017

Page 2: ASP.NET AND Azure Function

ASP.NET & Azure Functions

// How To Use And Integrate Azure Functions With ASP.NET //

ASP.NET

Page 3: ASP.NET AND Azure Function

Azure Functions Focal Points•Serveless•Cloud•HTTP

Page 4: ASP.NET AND Azure Function

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

Azure Functions & HTTP Call

HTTP

Page 6: ASP.NET AND Azure Function

Azure Functions HTTP Triggers

ASP.NET

HTTP

Page 7: ASP.NET AND Azure Function

Azure Functions & WebHooks

Page 8: ASP.NET AND Azure Function

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

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

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

ASP.NET WebHooks

ASP.NET

Page 12: ASP.NET AND Azure Function

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

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

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

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

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

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

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

DEMO ASP.NET

WEBHOOKS SENDER

Page 20: ASP.NET AND Azure Function

ASP.NET WebHooks Receivers

WebHooks Receivers attualmente disponibili:

GitHub: https://github.com/aspnet/WebHooks

Page 21: ASP.NET AND Azure Function

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

WebHook Receiver Esempio Handler

Page 23: ASP.NET AND Azure Function

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

Page 24: ASP.NET AND Azure Function

GRAZIE Luca CongiuCommunity Leader DotNetCode

ContattiEmail: [email protected]: congiuluc