Descrivere le funzioni di Azure

Completato

Funzioni di Azure è un servizio di calcolo serverless guidato dagli eventi che non richiede la gestione di macchine virtuali o contenitori. Se si crea un'app usando macchine virtuali o contenitori, tali risorse devono essere "in esecuzione" per consentire all'app di funzionare. Con Azure Functions, un evento riattiva la funzione eliminando la necessità di disporre le risorse in assenza di eventi.

Diagramma che mostra i trigger di evento che attivano il runtime della funzione, che instrada i risultati agli output, ad esempio API, archiviazione ed eventi.

Elaborazione serverless in Azure

Vantaggi di Funzioni di Azure

Le Funzioni di Azure sono ideali quando ci si concentra solo sul codice che esegue il tuo servizio e non sulla piattaforma o sull'infrastruttura sottostante. La soluzione Funzioni viene usata comunemente quando occorre eseguire operazioni in risposta a un evento (spesso tramite una richiesta REST), un timer o un messaggio proveniente da un altro servizio di Azure e quando l'operazione può essere completata in pochi secondi al massimo.

Le funzioni offrono scalabilità automatica in base alla domanda, quindi possono essere una buona scelta quando la domanda è variabile.

Azure Functions esegue il tuo codice quando viene attivato e dealloca automaticamente le risorse al termine della funzione. In questo modello Azure addebita solo il tempo di CPU usato durante l'esecuzione della funzione.

Diagramma che mostra la scalabilità delle esecuzioni serverless con eventi e fatture solo durante l'esecuzione.

Le funzioni possono essere con stato o senza stato. Quando sono senza stato (impostazione predefinita), si comportano come se venissero riavviate ogni volta che rispondono a un evento. Quando sono con stato persistente (chiamate Durable Functions), il runtime passa un contesto all'interno della funzione per tenere traccia delle attività precedenti.

Le funzioni sono un componente chiave della computazione serverless. oltre a essere una piattaforma di calcolo generale per l'esecuzione di qualsiasi tipo di codice. Se le esigenze dell'app cambiano, è possibile distribuire il progetto in un ambiente non serverless. Questa flessibilità consente di gestire il ridimensionamento, l'esecuzione su reti virtuali e persino isolare completamente le funzioni.