Condividi tramite


Registrare le estensioni di associazione di Funzioni di Azure

Il runtime di Funzioni di Azure esegue in modo nativo trigger HTTP e timer. Altri trigger e associazioni supportati sono disponibili come pacchetti di estensione NuGet separati.

I progetti di libreria di classi .NET usano estensioni di associazione installate nel progetto come pacchetti NuGet.

I bundle di estensioni consentono alle app di non-.NET di usare le estensioni di associazione senza dover interagire con l'infrastruttura .NET.

Bundle di estensioni

I bundle di estensioni aggiungono un set predefinito di estensioni di associazione compatibili all'app per le funzioni. Le versioni dei bundle di estensioni vengono eseguite. Ogni versione contiene un set specifico di estensioni di associazione verificate per funzionare insieme. Selezionare una versione del bundle in base alle estensioni necessarie nell'app.

Quando si crea un progetto di Funzioni di Azure da un modello di non-.NET, i bundle di estensioni sono già abilitati nel file host.json dell'app.

Definire un bundle di estensione

Per definire un riferimento al bundle di estensione nel file di progetto host.json , aggiungere una extensionBundle sezione, come nell'esempio seguente:

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

In extensionBundle sono disponibili le proprietà seguenti:

Proprietà Descrizione
id Spazio dei nomi per i bundle di estensioni di Funzioni di Azure Microsoft.
version Intervallo di versioni del bundle da installare. Il runtime di Funzioni sceglie sempre la versione massima consentita definita dall'intervallo o dall'intervallo di versioni. Ad esempio, un version intervallo di valori di [4.0.0, 5.0.0) consente tutte le versioni del bundle dalla versione 4.0.0 fino a 5.0.0, ma non incluse. Per altre informazioni, vedere la notazione degli intervalli per specificare gli intervalli di versione.

Bundle di estensioni supportati

Nella tabella seguente sono elencati i bundle predefiniti Microsoft.Azure.Functions.ExtensionBundle attualmente disponibili a livello generale.

Versione bundle Versione in host.json Estensioni incluse
4.x [4.0.0, 5.0.0) Vedere extensions.json usato per generare il bundle.
3.x [3.3.0, 4.0.0) Vedere extensions.json usato per generare il bundle.
2.x [2.*, 3.0.0) Vedere extensions.json usato per generare il bundle.
1.x [1.*, 2.0.0) Vedere extensions.json usato per generare il bundle.

I bundle di estensione predefiniti vengono definiti usando intervalli di versioni e questa tabella collega le definizioni di estensione per il bundle. Per un elenco completo delle versioni del bundle di estensioni e delle versioni delle estensioni in ogni versione, vedere la pagina relativa alla versione dei bundle di estensioni.

Considerazioni sulle aggregazioni di estensioni

Tenere presenti queste considerazioni quando si lavora con i bundle di estensioni:

  • Quando possibile, è necessario impostare un version valore di intervallo in host.json da questa tabella, ad esempio [4.0.0, 5.0.0), anziché definire un intervallo personalizzato.
  • Usa l'intervallo di versioni più recente per ottenere prestazioni ottimali dell'app e accedere alle funzionalità più recenti.

Bundle di estensioni in anteprima

Le versioni non definitive di estensioni di binding specifiche vengono rese spesso disponibili nei bundle di estensioni di anteprima. Questi bundle di estensioni di anteprima, che hanno un ID di Microsoft.Azure.Functions.ExtensionBundle.Preview, consentono di sfruttare i nuovi comportamenti di estensione prima che vengano dichiarati come disponibilità generale. Tenere presenti queste considerazioni quando si sceglie di usare un bundle di estensione non ga:

  • I bundle di anteprima possono includere funzionalità ancora in fase di sviluppo e non ancora pronte per l'uso in produzione.
  • Le modifiche di rilievo si verificano tra le versioni di anteprima senza preavviso precedente, che possono includere modifiche a:
    • Definizioni di trigger e binding
    • Estensioni incluse nell'anteprima
    • Caratteristiche e stabilità delle prestazioni
  • Gli aggiornamenti della sicurezza potrebbero richiedere l'aggiornamento delle versioni.
  • È necessario testare completamente i bundle di anteprima in ambienti non di produzione ed evitare di usare bundle di anteprima nell'ambiente di produzione. Quando è necessario usare un bundle di anteprima nell'ambiente di produzione, adottare queste precauzioni aggiuntive:
    • Aggiungere il bundle a una specifica versione del bundle ben testata anziché a un intervallo. L'aggiunta impedisce l'aggiornamento automatico della versione del bundle prima di poter verificare l'aggiornamento in un ambiente non di produzione.
    • Spostare l'app in usando una versione del bundle ga non appena la funzionalità diventa disponibile in una versione bundle completamente supportata.
  • Per rimanere informati sugli aggiornamenti del bundle, incluso il passaggio dall'anteprima alla disponibilità generale, è necessario:

Installare in modo esplicito le estensioni

Per i progetti di libreria di classi C# compilati, installare i pacchetti NuGet per le estensioni necessarie come in genere nelle app. Per altre informazioni, vedere la guida per sviluppatori di Visual Studio Code o la Guida per sviluppatori di Visual Studio.

Assicurarsi di ottenere il pacchetto corretto perché lo spazio dei nomi è diverso a seconda del modello di esecuzione:

Modello di esecuzione Namespace
Processo di lavoro isolato Microsoft.Azure.Functions.Worker.Extensions.*
In-process Microsoft.Azure.WebJobs.Extensions.*

Funzioni fornisce bundle di estensioni per i progetti non-.NET, che contengono un set completo di estensioni di associazione che vengono verificate essere compatibili. Se si verificano problemi di compatibilità tra due o più estensioni di binding, vedere la pagina relativa alla versione dei bundle di estensioni per esaminare le combinazioni compatibili delle versioni dell'estensione.

In alcuni casi non è possibile usare bundle di estensioni, ad esempio quando è necessario usare una versione preliminare specifica di un'estensione specifica. In questi rari casi, è necessario installare manualmente le estensioni di binding necessarie in un file di progetto C# (extensions.csproj) che fa riferimento alle estensioni specifiche richieste dall'app.

Il modo più semplice per creare questo file C# nel progetto locale consiste nell'usare Azure Functions Core Tools. Per altre informazioni, vedere il comando di installazione delle estensioni func , che genera automaticamente questo progetto.

Per lo sviluppo solo nel portale, è necessario creare manualmente un file extensions.csproj nella radice dell'app per le funzioni in Azure. Per altre informazioni, vedere Installare manualmente le estensioni.

Passaggi successivi