Linguaggi supportati in Funzioni di Azure

Questo articolo illustra i livelli di supporto offerti per i linguaggi disponibili in Funzioni di Azure. Vengono inoltre descritte le strategie per la creazione di funzioni utilizzando linguaggi non supportati in modo nativo.

Livelli di supporto

Sono disponibili due livelli di supporto:

  • Disponibile a livello generale - Il linguaggio è completamente supportato e approvato per l'uso in produzione.
  • Anteprima: non ancora supportata, ma che dovrebbe raggiungere lo stato disponibile a livello globale in futuro.

Linguaggi per versione di runtime

Sono disponibili diverse versioni Funzioni di Azure runtime di . Nella tabella seguente sono indicati i linguaggi supportati in ogni versione del runtime.

Linguaggio 1.x 2.x 3.x 4.x
C# GA (.NET Framework 4.8) GA (.NET Core 2.11) GA (.NET Core 3.1)
GA (.NET 5.0)
GA (.NET 6.0)
JavaScript GA (Node.js 6) GA (Node.js 10 & 8) GA (Node.js 14, 12, & 10) GA (Node.js 14)
Anteprima (Node.js 16)
F# GA (.NET Framework 4.8) GA (.NET Core 2.11) GA (.NET Core 3.1) GA (.NET 6.0)
Java N/D GA (Java 8) GA (Java 11 & 8) GA (Java 11 & 8)
PowerShell N/D GA (PowerShell Core 6) Ga (PowerShell 7.0 & Core 6) Ga (PowerShell 7.0)
Python N/D GA (Python 3.7 & 3.6) GA (Python 3.9, 3.8, 3.7, & 3.6) GA (Python 3.9, 3.8)
TypeScript2 N/D GA GA GA

1 Le app della libreria di classi .NET che hanno come destinazione la versione di runtime 2.x vengono eseguiti in .NET Core 3.1 in modalità di compatibilità .NET Core 2.x. Per altre informazioni, vedere Considerazioni su Funzioni v2.x.
2 Supportato tramite compilazione da sorgente a sorgente di JavaScript.

Per altre informazioni sulle versioni supportate dei linguaggi, vedere l'articolo della guida per sviluppatori del linguaggio specifico.
Per informazioni sulle modifiche previste per il supporto dei linguaggi di programmazione, vedere Roadmap per Azure.

Dettagli del supporto linguistico

La tabella seguente illustra i linguaggi supportati da Funzioni che possono essere eseguiti in Linux o Windows. Indica anche se la lingua supporta la modifica nel portale di Azure. Il linguaggio si basa sull'opzione dello stack di runtime scelta durante la creazione dell'app per le funzioni nel portale di Azure. È uguale all'opzione --worker-runtime quando si usa il comando in func init Azure Functions Core Tools.

Linguaggio Stack di runtime Linux Windows Modifica nel portale1
Libreria di classi C#2 .NET
Script C# .NET
JavaScript Node.js
Python Python
Java Java
PowerShell PowerShell Core
TypeScript Node.js
Go/Tode/altro Gestori personalizzati

1 Quando è in esecuzione in Linux, la modifica nel portale è supportata solo in un piano dedicato (servizio app).
2 Nel portale non è attualmente possibile creare app per le funzioni in esecuzione in .NET 5.0. Per altre informazioni, vedere Sviluppare e pubblicare funzioni .NET 5 usando Funzioni di Azure.

Per altre informazioni, vedere Supporto del sistema operativo/runtime.

Quando la modifica nel portale non è disponibile, è invece necessario sviluppare le funzioni in locale.

Supporto delle versioni principali della lingua

Funzioni di Azure offre una garanzia di supporto per le versioni principali dei linguaggi di programmazione supportati. Per la maggior parte delle lingue, sono disponibili versioni secondarie o patch rilasciate per aggiornare una versione principale supportata. Esempi di versioni secondarie o patch includono Ad esempio Python 3.9.1 e Node 14.17. Quando sono disponibili nuove versioni secondarie delle lingue supportate, le versioni secondarie usate dalle app per le funzioni vengono aggiornate automaticamente a queste versioni secondarie o patch più recenti.

Nota

Poiché Funzioni di Azure possibile rimuovere il supporto delle versioni secondarie precedenti in qualsiasi momento dopo la disponibilità di una nuova versione secondaria, non è consigliabile aggiungere le app per le funzioni a una versione secondaria o patch specifica di un linguaggio di programmazione.

Gestori personalizzati

I gestori personalizzati sono server Web leggeri che ricevono eventi dall Funzioni di Azure host. Qualsiasi linguaggio che supporta primitive HTTP può implementare un gestore personalizzato. Ciò significa che i gestori personalizzati possono essere usati per creare funzioni in linguaggi che non sono ufficialmente supportati. Per altre informazioni, vedere Funzioni di Azure gestori personalizzati.

Estendibilità di un linguaggio

A partire dalla versione 2.x, il runtime è progettato per offrire l'estendibilità del linguaggio. I linguaggi JavaScript e Java nel runtime 2.x sono costruiti con questa estendibilità.

Passaggi successivi

Per altre informazioni su come sviluppare funzioni nelle lingue supportate, vedere le risorse seguenti: