Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Come descritto in What is Durable Task?, il framework Durable Task supporta due modelli di hosting:
- Azure Functions (tramite Durable Functions)
- Self-hosted (tramite gli SDK per attività permanenti autonomi).
Entrambi i modelli di hosting offrono le stesse funzionalità di esecuzione durevoli principali (orchestrazioni, attività, timer, eventi esterni e altro ancora), ma differiscono in che modo l'applicazione è ospitata, ridimensionata e distribuita.
In generale, in cui l'applicazione viene eseguita determina il modello di hosting usato. Se si basa su Azure Functions, usare Durable Functions. Se utilizzi qualsiasi altra piattaforma di calcolo, utilizzi gli SDK autonomi di Durable Task.
Scelta basata sulla piattaforma di hosting
Se si conosce già la piattaforma di hosting dell'applicazione, la tabella seguente consente di determinare quale modello di hosting usare:
| Piattaforma di hosting | Modello di hosting |
|---|---|
| Azure Functions (Consumo, Consumo flessibile, Premium) | Funzioni durevoli |
| Azure Container Apps (con runtime di Azure Functions) | O uno o l'altro |
| Azure App Service (con runtime di Azure Functions) | O uno o l'altro |
| Azure Kubernetes Service (AKS) | SDK per attività permanenti autonome |
| Macchine virtuali o locali | SDK per attività permanenti autonome |
Annotazioni
Azure App Service e Azure Container Apps possono entrambi ospitare il runtime di Azure Functions, tramite l'integrazione completamente gestita di Azure Functions o distribuendo direttamente il runtime di Functions. Entrambe le piattaforme supportano quindi entrambi i modelli di hosting. Per altre informazioni sui modelli di hosting Azure Functions, vedere Azure Functions piani di hosting.
Confronto dei modelli di hosting
La tabella seguente riepiloga le differenze principali tra i due modelli di hosting:
| Durable Functions (Azure Functions) | Insiemi di sviluppo software autonomi per attività persistenti (ospitato autonomamente) | |
|---|---|---|
| Servizio di hosting | Azure Functions (consumo, consumo flessibile, Premium), Servizio App e App Contenitore (con runtime di Functions) | Qualsiasi piattaforma: Azure Container Apps, AKS, App Service, macchine virtuali, in sede |
| Ridimensionamento | Automatico, gestito dall'infrastruttura di scalabilità gestita Azure Functions | È possibile gestire manualmente il ridimensionamento o usare la scalabilità automatica nativa della piattaforma ( ad esempio KEDA in Kubernetes) |
| Trigger | Supporto predefinito per i trigger HTTP, Queue, Timer, Event Grid e altri trigger di Funzioni di Azure | Si definiscono punti di ingresso personalizzati (ad esempio, endpoint HTTP, consumer di messaggi e così via) |
| Archiviazione dello stato | Durable Task Scheduler (scelta consigliata), Azure Storage, MSSQL, Netherite | Pianificatore di attività persistente |
| Lingue | .NET (C#/F#), JavaScript/TypeScript, Python, Java, PowerShell | .NET (C#/F#), JavaScript/TypeScript, Python, Java |
| Monitoring | Integrazione predefinita con il portale di Azure, Application Insights | Si configura una soluzione di monitoraggio personalizzata( ad esempio, Azure Monitor, Prometheus o Grafana) |
Annotazioni
L'avvio a freddo si verifica quando un'app per le funzioni viene avviata dopo l'inattività. I piani di hosting Premium e Dedicato mantengono a caldo le istanze per ridurre la latenza di avvio a freddo.
Il piano di hosting Flex Consumption offre il concetto di 'istanze sempre pronte' come mitigazione dell'avvio a freddo.
Ulteriori informazioni sui modelli di hosting di Azure Functions.
API HTTP integrate
Azure Functions fornisce endpoint HTTP per l'applicazione per funzioni, che l'estensione Durable Functions sfrutta per fornire il supporto incorporato per la gestione delle istanze su HTTP.
Quando si usano gli SDK di Durable Task, è necessario implementare endpoint HTTP personalizzati a seconda delle risorse di calcolo dell'hosting.
| Feature | Funzioni durevoli | SDK per attività durevoli |
|---|---|---|
| API HTTP di gestione | ✅ Integrato | ❌ Implementare il proprio |
| URL di stato automatici | ✅ Integrato | ❌ Implementare il proprio |
Funzionalità HTTP di Durable Functions
Durable Functions espone automaticamente gli endpoint HTTP per avviare orchestrazioni, eseguire query sullo stato, generare eventi e istanze di terminazione. Queste API seguono il modello di polling HTTP asincrono, semplificando l'integrazione con sistemi esterni.
Annotazioni
Durable Functions supporta l'uso diretto della classe DurableTaskClient se si preferisce usare le API HTTP predefinite.
Altre informazioni: funzionalità HTTP in Durable Functions | riferimento API HTTP
Gestione degli SDK per attività durevoli
Con gli SDK di Durable Task è possibile usare la DurableTaskClient classe direttamente per gestire le istanze di orchestrazione. Se sono necessari endpoint HTTP, è necessario implementarli manualmente usando il framework Web preferito.
Altre informazioni: Gestire le istanze di orchestrazione
Back-end di archiviazione
Durable Functions supportano più back-end di archiviazione, mentre gli SDK Durable Task utilizzano esclusivamente il Durable Task Scheduler.
Suggerimento
Il Durable Task Scheduler è un servizio di Azure completamente gestito che gestisce la persistenza dello stato di orchestrazione. Viene effettuato il provisioning come risorsa di Azure separata con il proprio pricing. È il back-end consigliato per Durable Functions e l'unico back-end supportato per gli SDK per le attività permanenti.
| Provider di archiviazione | Funzioni durevoli | SDK per attività durevoli |
|---|---|---|
| Pianificatore di attività persistente | ✅ Consigliato | ✅ Obbligatorio |
| Azure Storage | ✅ Sostenuto | ❌ Non supportato |
| Microsoft SQL Server | ✅ Sostenuto | ❌ Non supportato |
| Netherite | ⚠️ Supportato, ma in fase di ritiro | ❌ Non supportato |
Altre informazioni: Provider di archiviazione
Configurazione dell'hub attività
Durable Functions configura gli hub delle attività nel file host.json. Gli SDK per attività permanenti configurano gli hub delle attività nel codice e nelle variabili di ambiente (connection string/endpoint).
Altre informazioni: Hub delle attività
Diagnostica e controllo delle versioni
| Feature | Funzioni durevoli | SDK per attività durevoli |
|---|---|---|
| Dashboard utilità di pianificazione attività permanenti | ✅ Sì | ✅ Sì |
| Application Insights | ✅ Integrato | Configurazione manuale |
| Distribuzione senza tempi di inattività | ✅ Slot di funzioni | Specifico per piattaforma |
Altre informazioni: Diagnostica | Versionamento
Entrambi i modelli di hosting supportano il Durable Task Scheduler come sistema di archiviazione dello stato, che offre funzionalità di archiviazione dello stato e di monitoraggio aggiuntive. Durable Functions supporta anche diverse opzioni di archiviazione BYO (Bring Your Own) per scenari che li richiedono. Per altre informazioni, vedere Provider di archiviazione.
Altre considerazioni
Quando si sceglie tra i due modelli di hosting, considerare i fattori seguenti:
| Scegliere Durable Functions se... | Scegliere SDK per attività permanenti autonome se... |
|---|---|
| Si desidera avere trigger integrati di Azure Functions (HTTP, Coda, Timer e così via). | Si vuole avere il controllo completo sul contenitore e sui relativi punti di ingresso. |
| Si ha già familiarità con il modello di hosting Azure Functions. | Si preferisce un SDK leggero senza sovraccarico di runtime Azure Functions. |
| Hai bisogno dell'integrazione del portale di Azure per la gestione delle funzioni. | Si vuole che lo stesso codice sia portabile tra piattaforme container (AKS, Servizio App, e così via). |
| È necessario scegliere tra più sistemi di archiviazione. | Hai del codice di applicazione esistente, non basato su Funzioni, con cui integrare. |
| Sono necessarie app serverless basate su eventi che si riducono fino a zero quando inattive. | Sono necessari carichi di lavoro a bassa latenza sempre attiva senza ritardi di avvio a freddo. |
| Si vogliono prezzi con pagamento in base all'esecuzione con il piano a consumo. | Sono necessari scenari con velocità effettiva elevata ottimizzati per l'elaborazione batch. |
| È necessario creare rapidamente prototipi con trigger dichiarativi e associazioni. | Hai applicazioni esistenti containerizzate o Kubernetes. |
Migrazione
Se si usa già Durable Functions e si vuole passare a una distribuzione basata su contenitori o sfruttare la flessibilità di hosting degli SDK per attività permanenti, la migrazione è semplice. Il codice di orchestrazione è molto simile tra entrambi i framework.
Per indicazioni dettagliate sulla migrazione, vedere Migrate da Durable Functions a Durable Task SDK.
SDK di attività permanenti non supportati
Tutti gli SDK per attività durevoli sono open source e disponibili in GitHub. Tuttavia, alcuni SDK non sono ufficialmente supportati da Microsoft o sono ancora in fasi sperimentali. Gli SDK seguenti non sono attualmente supportati:
Durable Task Framework (Legacy)
Durable Task Framework (DTFx) è una vecchia libreria di attività .NET open source. Sebbene fornisca primitive di orchestrazione simili, precede gli SDK di Durable Task moderni e non include il supporto ufficiale Microsoft o le funzionalità più recenti. È anche necessario gestire l'hosting, l'infrastruttura operativa e la manutenzione a lungo termine.
Se si sta avviando un nuovo progetto, è consigliabile usare invece gli SDK di Durable Task moderni o Durable Functions.
SDK per attività durevoli di Go
Durable Task SDK per Go è una libreria open source supportata dalla community che consente funzionalità di orchestrazione durevoli nelle applicazioni Go. Attualmente è in fase sperimentale, non funziona con nessuno dei back-end di archiviazione dello stato di Durable Task supportati e non è consigliato per l'uso in produzione.
Annotazioni
Se si è interessati a usare Durable Task con Go con supporto formale di Microsoft, è consigliabile inviare commenti e suggerimenti aprendo un problema nel repository durabletask-go GitHub.
Passaggi successivi
Introduzione al framework scelto:
Panoramica di Durable Functions
Panoramica di Durable Functions
Successivamente, scopri di più sul provider back-end di Durable Task Scheduler.