Le Azure Function sono il servizio serverless della piattaforma icrosoft Azure e permettono l'utilizzo di diversi runtime, tra i quali anche .NET Core. Data l'uscita di novembre 2019 della versione 3.1 con licenza LTS, è lecito quindi aspettarsi di poter usare questa nuova versione con le Azure Function.
Fortunatamente questo è possibile grazie ad una nuova versione del runtime delle function giunto alla 3.x (3.0.12939.0 nella scrittura di questo script) che dispone anche del runtime di .NET Core 3.1. Rispetto al passaggio del runtime dalla 1.x alle 2.x, dove c'era un netto cambio di architettura e il cambio da .NET Framework a .NET Core, il passaggio dalla 2.x alla 3.x dovrebbe essere indolore. Nulla è stato cambiato nell'architettura, i binding si aggiungono sempre tramite estensioni NuGet, perciò possiamo permetterci di aggiornare il runtime da utilizzare direttamente nel portale, senza apportare nessuna modifica.

In alternativa possiamo cambiare il valore dell'impostazione FUNCTIONS_EXTENSION_VERSION da ~2 a ~3.
Cambiare solo il runtime non è una buona ed è più sicuro poter provare il tutto direttamente in Visual Studio. Dopo averlo aggiornato almeno alla versione 16.4, consigliamo prima di tutto di creare un esempio di function e di avviarlo. Questo garantisce che Visual Studio scarichi e installi l'ultima versione del runtime disponibile in modo da permettervi il debug.
Successivamente apriamo il progetto da migrare e interveniamo direttamente sul file csproj. Cambiamo i rispettivi tag come segue:
<TargetFramework>netcoreapp3.1</TargetFramework> <AzureFunctionsVersion>v3</AzureFunctionsVersion>
Aggiorniamo poi i pacchetti NuGet, in particolare Microsoft.NET.Sdk.Functions, ad una versione almeno 3.x. Aggiorniamo poi i pacchetti Microsoft.Azure.WebJobs.Extensions.* e verifichiamo se ci sono incompatibilità. Se veniamo dalla versione 2 del runtime, non si dovrebbero presentare. A questo punto ricompiliamo l'intero progetto ed avviamo verificando ogni funzione.

Da console, come mostrato nell'immagine precedente, dovremmo poter vedere indicata la versione con il quale il nostro codice viene eseguito.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Creare applicazioni distribuite con Azure Container Apps e Dapr
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Sfruttare lo streaming di una chiamata Http da Blazor
Reactive form tipizzati con modellazione del FormBuilder in Angular
Utilizzare gli snapshot con Azure File shares
Usare le variabili per personalizzare gli stili CSS
Creare attributi generici in C#
Sfruttare l'output cache di ASP.NET Core 7 con i controller
Creare automaticamente una issue di GitHub
Leggere la configurazione da Azure KeyVault con logica di retry in ASP.NET Core
I più letti di oggi
- .NET Conference Italia 2023 - Milano e Online
- Utilizzare database e servizi con gli add-on di Container App
- Evitare la script injection nelle GitHub Actions
- Reactive form tipizzati con modellazione del FormBuilder in Angular
- Eseguire attività basate su eventi con Azure Container Jobs
- Utilizzare le collection expression in C#
- Registrare servizi multipli tramite chiavi in ASP.NET Core 8
- Eseguire query verso tipi non mappati in Entity Framework Core
- Reactive form tipizzati con FormBuilder in Angular
- Eseguire attività pianificate con Azure Container Jobs