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.
L'app per le funzioni viene eseguita su una versione specifica del runtime di Funzioni di Azure. Per impostazione predefinita, si creano app per le funzioni nella versione 4.x più recente del runtime di Funzioni. Le app per le funzioni sono supportate solo quando eseguite in una versione principale supportata. Questo articolo spiega come configurare un'app per le funzioni in Azure per indirizzarla o fissarla a una versione specifica del runtime di Funzioni, quando necessario.
Considerazioni
Tenere presenti queste considerazioni quando si punta a una versione di runtime specifica:
- Il piano Flex Consumption viene eseguito solo nella versione 4.x del runtime. Poiché il piano Consumo Flessibile non supporta l'impostazione dell'app
FUNCTIONS_EXTENSION_VERSION, non è possibile impostare l'app per l'uso di una versione specifica del runtime durante l'esecuzione in questo piano. - Il modo in cui si usa una versione specifica dipende dal fatto che si esegua Windows o Linux.
- Questo articolo è specifico per Windows o Linux. Scegliere il sistema operativo all'inizio dell'articolo.
- Quando possibile, eseguire sempre l'app nella versione di runtime supportata più recente. Fissare l'app su una versione specifica solo se ciò è richiesto a causa di un problema con la versione più recente. Passare sempre alla versione del runtime più recente non appena è possibile eseguire correttamente le funzioni.
- Durante lo sviluppo locale, la versione installata di Funzioni di Azure Core Tools deve corrispondere alla versione del runtime principale usata dall'app per le funzioni in Azure. Per altre informazioni, vedere Versioni di Core Tools.
Aggiornare la versione del runtime
Quando possibile, eseguire sempre le app per le funzioni nella versione supportata più recente del runtime di Funzioni di Azure. Se l'app per le funzioni è attualmente in esecuzione in una versione precedente del runtime, eseguire la migrazione dell'app alla versione 4.x.
Quando l'app include funzioni esistenti, è necessario adottare alcune precauzioni prima di passare a una versione principale successiva del runtime. Gli articoli seguenti illustrano in dettaglio le modifiche di rilievo tra le versioni principali, incluse quelle specifiche del linguaggio. Forniscono anche istruzioni dettagliate per una corretta migrazione dell'app per le funzioni esistente.
- Eseguire la migrazione dalla versione di runtime 3.x alla versione 4.x
- Eseguire la migrazione dalla versione di runtime 1.x alla versione 4.x
Per determinare la versione corrente del runtime, vedere Visualizzare la versione corrente del runtime.
Visualizzare la versione corrente del runtime
È possibile visualizzare la versione del runtime corrente dell'app per le funzioni in uno dei modi seguenti:
Per visualizzare e aggiornare la versione del runtime usata attualmente da un'app per le funzioni, seguire questa procedura:
Nel portale di Azure passare all'app per le funzioni.
Espandere Impostazioni e selezionare Configurazione.
Nella scheda Impostazioni di runtime della funzione osservare la Versione runtime. In questo esempio la versione è impostata su
~4.
Fissare a una versione specifica
Funzioni di Azure consente di usare l'impostazione dell'app FUNCTIONS_EXTENSION_VERSION per specificare la versione del runtime da utilizzare per una determinata app per le funzioni. Se si specifica solo la versione principale (~4), l'app per le funzioni viene aggiornata automaticamente alle nuove versioni secondarie del runtime non appena diventano disponibili. Gli aggiornamenti delle versioni secondarie sono automatici perché è improbabile che le nuove versioni secondarie introducano modifiche che interrompono le funzioni.
Le app Linux usano l'impostazione del sito linuxFxVersion insieme a FUNCTIONS_EXTENSION_VERSION per determinare l'immagine di base Linux corretta in cui eseguire le funzioni. Quando si crea una nuova app per le funzioni in Linux, il runtime sceglie automaticamente l'immagine di base corretta in base alla versione del runtime dello stack di linguaggio.
Il fissaggio a una versione del runtime specifica causa il riavvio dell'app per le funzioni.
Quando si specifica una versione secondaria specifica ( ad esempio 4.0.12345) in FUNCTIONS_EXTENSION_VERSION, si aggiunge l'app per le funzioni a tale versione specifica del runtime fino a quando non si sceglie esplicitamente di tornare agli aggiornamenti automatici della versione. Fissare a una versione secondaria specifica solo per il tempo necessario a risolvere eventuali problemi dell'app per le funzioni che impediscono di passare alla versione principale. Le versioni secondarie meno recenti vengono rimosse regolarmente dall'ambiente di produzione. Quando l'app per le funzioni è ancorata a una versione secondaria che viene successivamente rimossa, l'app per le funzioni viene eseguita sulla versione esistente più vicina anziché sulla versione impostata in FUNCTIONS_EXTENSION_VERSION.
Gli annunci di App Service annunciano la rimozione delle versioni minori.
Note
Quando si tenta di pubblicare da Visual Studio in un'app fissata a una versione secondaria specifica del runtime, una finestra di dialogo richiede di eseguire l'aggiornamento alla versione più recente o di annullare la pubblicazione. Per evitare questo controllo quando è necessario usare una versione secondaria specifica, aggiungere la proprietà <DisableFunctionExtensionVersionUpdate>true</DisableFunctionExtensionVersionUpdate> nel file .csproj.
Usare uno di questi metodi per fissare temporaneamente l'app a una versione specifica del runtime:
Per visualizzare e aggiornare la versione del runtime usata attualmente da un'app per le funzioni, seguire questa procedura:
Nel portale di Azure passare all'app per le funzioni.
Espandere Impostazioni e selezionare Configurazione.
Nella scheda Impostazioni di runtime della funzione osservare la Versione runtime. In questo esempio la versione è impostata su
~4.
Per fissare l'app a una versione secondaria specifica, nel riquadro sinistro espandere Impostazioni e selezionare Variabili di ambiente.
Nella scheda Impostazioni app selezionare FUNCTIONS_EXTENSION_VERSION, impostare Valore sulla versione secondaria richiesta, quindi selezionare Applica.
Selezionare Applica e quindi Conferma per applicare le modifiche e riavviare l'app.
L'app per le funzioni viene riavviata dopo che si apporta la modifica all'impostazione dell'applicazione.
Per fissare l'app per le funzioni a una versione del runtime specifica in Linux, impostare un URL dell'immagine di base specifico della versione nell'impostazione del sito linuxFxVersion nel formato DOCKER|<PINNED_VERSION_IMAGE_URI>.
Importante
Le app per le funzioni fissate in Linux non ricevono aggiornamenti regolari delle funzionalità di sicurezza e host. A meno che non si ricevano suggerimenti da un professionista del supporto, usare l'impostazione FUNCTIONS_EXTENSION_VERSION e un valore standard linuxFxVersion per il linguaggio e la versione, ad esempio Python|3.12. Per i valori validi, vedere l'articolo di riferimento linuxFxVersion.
Il fissaggio a un runtime specifico non è attualmente supportato per le app per le funzioni Linux in esecuzione in un piano a consumo.
L'esempio seguente mostra il valore linuxFxVersion necessario per vincolare un'app per le funzioni Node.js 22 a una versione specifica del runtime, 4.14.0.3:
DOCKER|mcr.microsoft.com/azure-functions/node:4.14.0.3-node22
Se necessario, un professionista del supporto può fornire un URI dell'immagine di base valido per l'applicazione.
Usare i comandi dell'interfaccia della riga di comando di Azure per visualizzare e impostare linuxFxVersion. Attualmente non è possibile impostare linuxFxVersion nel portale o usando Azure PowerShell:
Per visualizzare la versione del runtime corrente, usare il comando az functionapp config show:
az functionapp config show --name <function_app> \ --resource-group <my_resource_group> --query 'linuxFxVersion' -o tsvIn questo codice sostituire
<function_app>con il nome dell'app per le funzioni. Sostituire anche<my_resource_group>con il nome del gruppo di risorse per l'app per le funzioni. Viene restituito il valore corrente dilinuxFxVersion.Per aggiornare l'impostazione
linuxFxVersionnell'app per le funzioni, usare il comando az functionapp config set:az functionapp config set --name <FUNCTION_APP> \ --resource-group <RESOURCE_GROUP> \ --linux-fx-version <LINUX_FX_VERSION>Sostituire
<FUNCTION_APP>con il nome dell'app per le funzioni. Sostituire anche<RESOURCE_GROUP>con il nome del gruppo di risorse per l'app per le funzioni. Infine, sostituire<LINUX_FX_VERSION>con il valore di un'immagine specifica fornita da un professionista del supporto.
È possibile eseguire questi comandi da Azure Cloud Shell scegliendo Open Cloud Shell negli esempi di codice precedenti. È anche possibile usare l'interfaccia della riga di comando di Azure in locale per eseguire questo comando dopo aver eseguito az login per accedere.
L'app per le funzioni viene riavviata dopo che si apporta la modifica alla configurazione del sito.
Aggiorna l'immagine Linux gestita
Questa sezione si applica solo alle app esistenti Python 3.11 e Java 8, 11 o 17 su piani Linux Elastic Premium o Dedicated (App Service) che utilizzano un'immagine gestita da Debian Bullseye. Se la tua app non soddisfa tutte queste condizioni, non è necessario seguire questa procedura.
La nuova immagine gestita offre una soluzione temporanea che consente a un'app interessata di rimanere nella versione corrente del linguaggio durante il passaggio a una distribuzione Linux supportata. Questa procedura non si applica a Flex Consumption o alle app di contenitori personalizzati. Per un'app nel piano Linux Consumption, eseguire la migrazione al piano Flex Consumption.
Questo aggiornamento seleziona la distribuzione Linux per la versione linguistica esistente utilizzando un valore in tre parti linuxFxVersion . Non fissa l'host delle funzioni a un'immagine specifica DOCKER|<IMAGE_URI> .
Scegli un valore Topo di biblioteca o Nobile linuxFxVersion
Per prima cosa, determina se puoi aggiornare la versione linguistica o se devi mantenere la versione attuale e seleziona una nuova distribuzione Linux.
Considera di aggiornare l'app a una versione linguistica più recente supportata. Dopo un aggiornamento linguistico, l'app utilizza l'immagine gestita predefinita per quella versione linguistica.
Se l'app deve rimanere nella versione linguistica attuale, scegli il corrispondente valore immagine più recente:
Versione della lingua Valore Debian Bullseye Distribuzione più recente Nuovo valore dell'immagine Python 3.11 Python\|3.11\|2.0Debian Bookworm Python\|3.11\|3.0Java 8 Java\|8\|2.0Ubuntu Noble Java\|8\|4.0Java 11 Java\|11\|2.0Ubuntu Noble Java\|11\|4.0Java 17 Java\|17\|2.0Ubuntu Noble Java\|17\|4.0Questi valori composti da tre parti selezionano esplicitamente l'immagine Linux gestita per queste immagini della serie Bullseye. Non vengono restituiti dal
az functionapp list-runtimescomando.
Prova la nuova immagine Linux gestita
Testa la tua app e le sue dipendenze dall'immagine più recente prima di aggiornare l'app di produzione.
Crea un'app di test separata o crea uno slot di distribuzione.
Distribuisci lo stesso codice e la stessa configurazione usati dalla tua app di produzione nell'app o nello slot di test.
Imposta il valore immagine più recente seguendo i passaggi in Aggiorna il valore dell'immagine. Quando usi uno slot, includi
--slot <SLOT_NAME>in ogni comando interfaccia della riga di comando di Azure.Invoca ogni funzione e verifica che l'app si avvii correttamente, che i trigger si eseguano come previsto e che le dipendenze native o del sistema operativo si carichino correttamente.
Aggiorna il valore dell'immagine
Cambiare il valore dell'immagine riavvia l'app di funzione. Aggiorna l'ambiente di produzione durante una finestra di manutenzione, oppure usa uno slot di distribuzione.
Visualizza il valore attuale
linuxFxVersion:az functionapp config show --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --query linuxFxVersion --output tsvQuesto comando restituisce il valore memorizzato nella configurazione del sito. Il valore restituito potrebbe contenere solo il linguaggio e la versione linguistica, come
Python|3.11, invece del valore in tre parti che identifica la distribuzione Linux. Se il valore non include la versione dell'immagine, segui i passaggi in Verifica la distribuzione Linux per confermare che l'app attualmente utilizza Debian Bullseye.Imposta
linuxFxVersionsul valore dell'immagine più recente:az functionapp config set --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --linux-fx-version "<LANGUAGE|VERSION|IMAGE_VERSION>"Per Python 3.11 su Debian Bookworm, usa
Python|3.11|3.0. Per Java su Ubuntu Noble, usaJava|8|4.0,Java|11|4.0, oppureJava|17|4.0.Aspetta che l'app si riavvii.
Verifica la distribuzione Linux
Verifica sia il valore configurato che la distribuzione Linux che esegue la tua app.
Conferma il valore aggiornato
linuxFxVersion:az functionapp config show --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --query linuxFxVersion --output tsvPoiché hai esplicitamente impostato un valore a tre parti, questo comando restituisce esattamente il valore Bookworm o Noble che hai selezionato.
Apri il sito Kudu dell'app all'indirizzo
https://<APP_NAME>.scm.azurewebsites.net.Seleziona Ambiente e rivedi
KUDU_ENV, oppure apri una sessione SSH ed esegui:cat /etc/os-releaseConferma che l'output identifichi Debian Bookworm per Python 3.11 o Ubuntu Noble per Java 8, 11 o 17.
Richiama ogni funzione e conferma che trigger e dipendenze continuino a funzionare come previsto.
Annulla l'aggiornamento dell'immagine Linux gestita
Se l'immagine aggiornata causa un problema di compatibilità, ripristina temporaneamente il valore precedente linuxFxVersion mentre risolvi il problema.
Avvertimento
Debian Bullseye non è più supportato dopo la sua data di fine vita e non riceve aggiornamenti di sicurezza. Usa il rollback solo come mitigazione temporanea e torna a un'immagine supportata il prima possibile.
Dalla tabella in Scegli un valore Bookworm o Nobile
linuxFxVersion, trova il valore Debian Bullseye per la tua versione linguistica.Imposta
linuxFxVersionsul valore Bullseye:az functionapp config set --name <APP_NAME> \ --resource-group <RESOURCE_GROUP> \ --linux-fx-version "<BULLSEYE_LINUX_FX_VERSION>"Aspetta che l'app si riavvii, poi ripeti i controlli in Verifica la distribuzione Linux.