Panoramica delle versioni di Durable Functions

Funzioni permanenti è un'estensione di Funzioni di Azure e Processi Web di Azure che consente di scrivere funzioni con stato in un ambiente senza server. L'estensione gestisce automaticamente lo stato, i checkpoint e i riavvii. Se non si ha già familiarità con Durable Functions, vedere la documentazione di panoramica.

Nuove funzionalità in 2.x

Questa sezione descrive le funzionalità di Durable Functions aggiunte nella versione 2.x.

Nota

Questa sezione non si applica a Durable Functions nel ruolo di lavoro isolato dotnet. Per questo, vedere Panoramica del processo isolato per le funzioni durevoli.

Entità durevoli

In Durable Functions 2.x è stato introdotto un nuovo concetto di funzioni di entità.

Le funzioni di entità definiscono le operazioni per la lettura e l'aggiornamento di piccole parti di stato, note come entità durevoli. Come le funzioni dell'agente di orchestrazione, le funzioni di entità sono funzioni con un tipo di trigger speciale, il trigger di entità. A differenza delle funzioni dell'agente di orchestrazione, però, le funzioni di entità non hanno vincoli di codice specifici. Le funzioni di entità, inoltre, gestiscono lo stato in modo esplicito anziché in modo implicito, rappresentandolo tramite flusso di controllo.

Per altre informazioni, vedere l'articolo sulle entità durevoli .

HTTP durevole

In Durable Functions 2.x è stata introdotta una nuova funzionalità HTTP durevole che consente di:

  • Chiamare LE API HTTP direttamente dalle funzioni di orchestrazione (con alcune limitazioni documentate).
  • Implementare il polling di stato HTTP 202 lato client automatico.
  • Supporto predefinito per le identità gestite di Azure.

Per altre informazioni, vedere l'articolo sulle funzionalità HTTP .

Eseguire la migrazione da 1.x a 2.x

Questa sezione descrive come eseguire la migrazione della versione 1.x esistente Durable Functions alla versione 2.x per sfruttare le nuove funzionalità.

Aggiornare l'estensione

Installare la versione 2.x più recente dell'estensione di associazioni Durable Functions nel progetto.

JavaScript, Python e PowerShell

Durable Functions 2.x è disponibile a partire dalla versione 2.x del bundle di estensione Funzioni di Azure.

Il supporto di Python in Durable Functions richiede Durable Functions 2.x o versione successiva.

Per aggiornare la versione del bundle di estensione nel progetto, aprire host.json e aggiornare la extensionBundle sezione per usare la versione 4.x ([4.*, 5.0.0)).

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.*, 5.0.0)"
    }
}

Nota

Se Visual Studio Code non visualizza i modelli corretti dopo aver modificato la versione del bundle di estensione, ricaricare la finestra eseguendo il comando Developer: Ricarica finestra (CTRL+R in Windows e Linux, Command+R in macOS).

Java

Durable Functions 2.x è disponibile a partire dalla versione 4.x del bundle di estensione Funzioni di Azure. È necessario usare il runtime Funzioni di Azure 4.0 per eseguire funzioni Java.

Per aggiornare la versione del bundle di estensione nel progetto, aprire host.json e aggiornare la extensionBundle sezione per usare la versione 4.x ([4.*, 5.0.0)).

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.*, 5.0.0)"
    }
}

.NET

Aggiornare il progetto .NET per usare la versione più recente dell'estensione binding Durable Functions.

Per altre informazioni, vedere Registrare le estensioni di associazione Funzioni di Azure.

Aggiornare il codice

Durable Functions 2.x introduce diverse modifiche di rilievo. Durable Functions applicazioni 1.x non sono compatibili con Durable Functions 2.x senza modifiche al codice. Questa sezione elenca alcune delle modifiche da apportare durante l'aggiornamento delle funzioni 1.x alla versione 2.x.

Schema Host.json

Durable Functions 2.x usa un nuovo schema host.json. Le modifiche principali da 1.x includono:

  • "storageProvider" (e la sottosezione) per la configurazione specifica dell'archiviazione "azureStorage" .
  • "tracing" per la traccia e la configurazione della registrazione.
  • "notifications" (e la sottosezione) per la "eventGrid" configurazione della notifica griglia di eventi.

Per informazioni dettagliate, vedere la documentazione di riferimento Durable Functions host.json.

Modifiche del nome dell'hub attività predefinite

Nella versione 1.x, se un nome dell'hub attività non è stato specificato in host.json, è stato predefinito "DurableFunctionsHub". Nella versione 2.x il nome dell'hub attività predefinito è ora derivato dal nome dell'app per le funzioni. A causa di questo, se non è stato specificato un nome dell'hub attività durante l'aggiornamento a 2.x, il codice verrà operativo con un nuovo hub attività e tutte le orchestrazioni in anteprima non avranno più un'applicazione che li elabora. Per risolvere questo problema, è possibile impostare in modo esplicito il nome dell'hub attività sul valore predefinito v1.x di "DurableFunctionsHub" oppure seguire le indicazioni sulla distribuzione in tempo di inattività zero per informazioni dettagliate su come gestire le modifiche di rilievo per le orchestrazioni in volo.

Modifiche all'interfaccia pubblica (solo.NET)

Nella versione 1.x i vari oggetti di contesto supportati da Durable Functions hanno classi di base astratte destinate all'uso in unit test. Come parte di Durable Functions 2.x, queste classi di base astratte vengono sostituite con interfacce.

La tabella seguente rappresenta le modifiche principali:

1.x 2.x
DurableOrchestrationClientBase IDurableOrchestrationClient o IDurableClient
DurableOrchestrationContext o DurableOrchestrationContextBase IDurableOrchestrationContext
DurableActivityContext o DurableActivityContextBase IDurableActivityContext
OrchestrationClientAttribute DurableClientAttribute

Nel caso in cui una classe di base astratta contenga metodi virtuali, questi metodi virtuali sono stati sostituiti da metodi di estensione definiti in DurableContextExtensions.

modifiche function.json

In Durable Functions 1.x l'associazione client di orchestrazione usa un type oggetto .orchestrationClient La versione 2.x usa durableClient invece.

Generare modifiche all'evento

In Durable Functions 1.x chiamare l'API evento di generazione e specificare un'istanza che non esiste ha causato un errore invisibile all'utente. A partire da 2.x, la generazione di un evento a un'orchestrazione non esistente comporta un'eccezione.