Gestire l'app per le funzioni

In Funzioni di Azure un'app per le funzioni fornisce il contesto di esecuzione per le singole funzioni. I comportamenti dell'app per le funzioni si applicano a tutte le funzioni ospitate da un'app per le funzioni specifica. Tutte le funzioni in un'app per le funzioni devono essere dello stesso linguaggio.

Le singole funzioni in un'app per le funzioni vengono distribuite insieme e vengono ridimensionate insieme. Tutte le funzioni nella stessa app per le funzioni condividono risorse, per istanza, mentre l'app per le funzioni viene ridimensionata.

Le stringhe di connessione, le variabili di ambiente e altre impostazioni dell'applicazione vengono definite separatamente per ogni app per le funzioni. Tutti i dati che devono essere condivisi tra le app per le funzioni devono essere archiviati esternamente in un archivio persistente.

Inizia nel portale di Azure

Nota

A causa delle limitazioni alla modifica del codice della funzione nel portale di Azure, è consigliabile sviluppare le funzioni in locale e pubblicare il progetto di codice in un'app per le funzioni in Azure. Per altre informazioni, vedere Limitazioni di sviluppo nella portale di Azure

  1. Per iniziare, accedere al portale di Azure usando l'account Azure. Nella barra di ricerca nella parte superiore del portale immettere il nome dell'app per le funzioni e selezionarlo nell'elenco.

  2. In Impostazioni nel riquadro sinistro selezionare Configurazione.

    Function app overview in the Azure portal

È possibile passare a tutto ciò che è necessario per gestire l'app per le funzioni dalla pagina di panoramica, in particolare le impostazioni dell'applicazione e le funzionalità della piattaforma.

Usare le impostazioni dell'applicazione

È possibile creare un numero qualsiasi di impostazioni dell'applicazione richieste dal codice della funzione. Esistono anche impostazioni dell'applicazione predefinite usate da Funzioni. Per altre informazioni, vedere le informazioni di riferimento sulle impostazioni dell'app per Funzioni di Azure.

Queste impostazioni vengono archiviate crittografate. Per altre informazioni, vedere Sicurezza delle impostazioni dell'applicazione.

Le impostazioni dell'applicazione possono essere gestite dal portale di Azure e usando l'interfaccia della riga di comando di Azure e Azure PowerShell. È anche possibile gestire le impostazioni dell'applicazione da Visual Studio Code e da Visual Studio.

Per trovare le impostazioni dell'applicazione, vedere Introduzione all'portale di Azure.

La scheda Impostazioni applicazione gestisce le impostazioni usate dall'app per le funzioni. È necessario selezionare Mostra valori per visualizzare i valori nel portale. Per aggiungere un'impostazione nel portale, selezionare Nuova impostazione applicazione e aggiungere la nuova coppia chiave-valore.

Function app settings in the Azure portal.

Usare le impostazioni dell'applicazione

I valori delle impostazioni dell'app di funzione possono anche essere letti nel codice come variabili di ambiente. Per altre informazioni, vedere la sezione Variabili di ambiente negli argomenti di riferimento specifici del linguaggio seguenti:

Quando si sviluppa un'app per le funzioni in locale, è necessario mantenere copie locali di questi valori nel file di progetto local.settings.json. Per altre informazioni, vedere File di impostazioni locali.

Impostazioni di distribuzione FTPS

Funzioni di Azure supporta la distribuzione del codice del progetto nell'app per le funzioni tramite FTPS. Poiché questo metodo di distribuzione richiede la sincronizzazione dei trigger, questo metodo non è consigliato. Per trasferire in modo sicuro i file di progetto, usare sempre FTPS e non FTP.

È possibile ottenere le credenziali necessarie per la distribuzione FTPS usando uno di questi metodi:

È possibile ottenere le credenziali di pubblicazione FTPS nel portale di Azure scaricando il profilo di pubblicazione per l'app per le funzioni.

Importante

Il profilo di pubblicazione contiene credenziali di sicurezza importanti. È consigliabile proteggere sempre il file scaricato nel computer locale.

Per scaricare il profilo di pubblicazione dell'app per le funzioni:

  1. Selezionare la pagina Panoramica dell'app per le funzioni e quindi selezionare Recupera profilo di pubblicazione.

    Download publish profile

  2. Salvare e copiare il contenuto del file.

  1. Nel file individuare l'elemento publishProfile con l'attributo publishMethod="FTP". In questo elemento, gli publishUrlattributi , userNamee userPWD contengono l'URL di destinazione e le credenziali per la pubblicazione FTPS.

Tipo di piano di hosting

Quando si crea un'app per le funzioni, si crea anche un piano di hosting in cui viene eseguita l'app. Un piano può avere una o più app per le funzioni. Le funzionalità, il ridimensionamento e i prezzi delle funzioni dipendono dal tipo di piano. Per altre informazioni, vedere Funzioni di Azure opzioni di hosting.

È possibile determinare il tipo di piano usato dall'app per le funzioni dal portale di Azure oppure usando l'interfaccia della riga di comando di Azure o le API di Azure PowerShell.

I valori seguenti indicano il tipo di piano:

Tipo di piano Portale Interfaccia della riga di comando di Azure/PowerShell
Consumo Consumo Dynamic
Premium ElasticPremium ElasticPremium
Dedicato (servizio app) Varie Varie

Per determinare il tipo di piano usato dall'app per le funzioni, vedere servizio app piano nella scheda Panoramica per l'app per le funzioni nel portale di Azure. Per visualizzare il piano tariffario, selezionare il nome del piano di servizio app e quindi selezionare Proprietà nel riquadro sinistro.

View scaling plan in the portal

Pianificare la migrazione

È possibile usare i comandi portale di Azure o dell'interfaccia della riga di comando di Azure per eseguire la migrazione di un'app per le funzioni tra un piano a consumo e un piano Premium in Windows. Quando si esegue la migrazione tra piani, tenere presenti le considerazioni seguenti:

  • La migrazione diretta a un piano dedicato (servizio app) non è attualmente supportata.
  • La migrazione non è supportata in Linux.
  • Il piano di origine e il piano di destinazione devono trovarsi nello stesso gruppo di risorse e nella stessa area geografica. Per altre informazioni, vedere Move an app to another App Service plan (Spostare un'app in un altro piano di servizio app).
  • I comandi dell'interfaccia della riga di comando specifici dipendono dalla direzione della migrazione.
  • Il tempo di inattività nelle esecuzioni delle funzioni si verifica quando viene eseguita la migrazione dell'app per le funzioni tra i piani.
  • Lo stato e altri contenuti specifici dell'app vengono mantenuti, poiché la stessa condivisione File di Azure viene usata dall'app sia prima che dopo la migrazione.

Migrazione nel portale

Nella portale di Azure passare all'app Piano a consumo o Premium e scegliere Cambia piano servizio app in piano servizio app. Selezionare l'altro tipo di piano, creare un nuovo piano di servizio app del nuovo tipo e selezionare OK. Per altre informazioni, vedere Move an app to another App Service plan (Spostare un'app in un altro piano di servizio app).

Consumo a Premium

Usare la procedura seguente per eseguire la migrazione da un piano a consumo a un piano Premium in Windows:

  1. Eseguire il comando az functionapp plan create come indicato di seguito per creare un nuovo piano di servizio app (Elastic Premium) nella stessa area e nello stesso gruppo di risorse dell'app per le funzioni esistente:

    az functionapp plan create --name <NEW_PREMIUM_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP> --location <REGION> --sku EP1
    
  2. Eseguire il comando az functionapp update come indicato di seguito per eseguire la migrazione dell'app per le funzioni esistente al nuovo piano Premium:

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_PREMIUM_PLAN>
    
  3. Se il piano dell'app per le funzioni a consumo precedente non è più necessario, eliminare il piano dell'app per le funzioni originale dopo aver verificato che la migrazione è stata completata correttamente. Eseguire il comando az functionapp plan list come indicato di seguito per ottenere un elenco di tutti i piani a consumo nel gruppo di risorse:

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='Y'].{PlanName:name,Sites:numberOfSites}" -o table
    

    È possibile eliminare in modo sicuro il piano con zero siti, ovvero quello da cui è stata eseguita la migrazione.

  4. Eseguire il comando az functionapp plan delete come indicato di seguito per eliminare il piano a consumo da cui è stata eseguita la migrazione.

    az functionapp plan delete --name <CONSUMPTION_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP>
    

Da premium a consumo

Usare la procedura seguente per eseguire la migrazione da un piano Premium a un piano a consumo in Windows:

  1. Eseguire il comando az functionapp plan create come indicato di seguito per creare una nuova app per le funzioni (consumo) nella stessa area e nello stesso gruppo di risorse dell'app per le funzioni esistente. Questo comando crea anche un nuovo piano a consumo in cui viene eseguita l'app per le funzioni.

    az functionapp create --resource-group <MY_RESOURCE_GROUP> --name <NEW_CONSUMPTION_APP_NAME> --consumption-plan-location <REGION> --runtime dotnet --functions-version 3 --storage-account <STORAGE_NAME>
    
  2. Eseguire il comando az functionapp update come indicato di seguito per eseguire la migrazione dell'app per le funzioni esistente al nuovo piano a consumo.

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_CONSUMPTION_PLAN> --force
    
  3. Eseguire il comando az functionapp delete come indicato di seguito per eliminare l'app per le funzioni creata nel passaggio 1, poiché è necessario solo il piano creato per eseguire l'app per le funzioni esistente.

    az functionapp delete --name <NEW_CONSUMPTION_APP_NAME> --resource-group <MY_RESOURCE_GROUP>
    
  4. Se il piano precedente dell'app per le funzioni Premium non è più necessario, eliminare il piano dell'app per le funzioni originale dopo aver verificato che sia stata eseguita la migrazione a quella nuova. Fino a quando il piano Premium non viene eliminato, l'addebito continua. Eseguire il comando az functionapp plan list come indicato di seguito per ottenere un elenco di tutti i piani Premium nel gruppo di risorse.

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='EP'].{PlanName:name,Sites:numberOfSites}" -o table
    
  5. Eseguire il comando az functionapp plan delete come indicato di seguito per eliminare il piano Premium da cui è stata eseguita la migrazione.

    az functionapp plan delete --name <PREMIUM_PLAN> --resource-group <MY_RESOURCE_GROUP>
    

Ottenere le chiavi di accesso alle funzioni

Le funzioni attivate da HTTP possono in genere essere chiamate usando un URL nel formato : https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>. Quando l'autorizzazione per la funzione viene impostata su un valore diverso da anonymous, è necessario fornire anche una chiave di accesso nella richiesta. La chiave di accesso può essere specificata nell'URL usando la ?code= stringa di query o nell'intestazione della richiesta. Per altre informazioni, vedere Chiavi di accesso alle funzioni. Esistono diversi modi per ottenere le chiavi di accesso.

  1. Accedere al portale di Azure e quindi cercare e selezionare App per le funzioni.

  2. Selezionare la funzione che si vuole verificare.

  3. Nel riquadro di spostamento a sinistra in Funzioni selezionare Chiavi dell'app.

    Restituisce le chiavi host, che possono essere usate per accedere a qualsiasi funzione nell'app. Restituisce anche la chiave di sistema, che concede a chiunque l'accesso a livello di amministratore a tutte le API dell'app per le funzioni.

È anche possibile esercitarsi con privilegi minimi usando la chiave solo per la chiave di funzione specifica selezionando Chiavi funzione in Developer (Sviluppatore ) nella funzione attivata da HTTP.

Limitazioni di sviluppo nella portale di Azure

È necessario considerare queste limitazioni quando si sviluppano le funzioni nel portale di Azure:

  • La modifica nel portale è supportata solo per le funzioni Script JavaScript, PowerShell, Python e C#.
  • La modifica nel portale di Python è supportata solo quando è in esecuzione nel piano a consumo.
  • La modifica nel portale è attualmente supportata solo per le funzioni create o modificate per l'ultima volta nel portale.
  • Quando si distribuisce il codice in un'app per le funzioni dall'esterno del portale, non è più possibile modificare alcun codice per tale app per le funzioni nel portale. In questo caso, continuare a usare lo sviluppo locale.
  • Per le funzioni C# compilate, le funzioni Java e alcune funzioni Python, è possibile creare l'app per le funzioni e le risorse correlate nel portale. Tuttavia, è necessario creare il progetto di codice delle funzioni in locale e quindi pubblicarlo in Azure.

Quando possibile, è consigliabile sviluppare le funzioni in locale e pubblicare il progetto di codice in un'app per le funzioni in Azure. Per altre informazioni, vedere Scrivere codice per Funzioni di Azure e testarle in locale.

Installare manualmente le estensioni

Le funzioni della libreria di classi C# possono includere i pacchetti NuGet per le estensioni di associazione direttamente nel progetto di libreria di classi. Per altri linguaggi non-.NET e script C#, è consigliabile usare bundle di estensioni. Se è necessario installare manualmente le estensioni, è possibile farlo usando Funzioni di Azure Core Tools in locale. Se non è possibile usare bundle di estensioni e sono in grado di funzionare solo nel portale, è necessario usare Strumenti avanzati (Kudu) per creare manualmente il file extensions.csproj direttamente nel sito. Assicurarsi di rimuovere prima l'elemento extensionBundle dal file host.json.

Questo stesso processo funziona per qualsiasi altro file che devi aggiungere alla tua app.

Importante

Quando possibile, non è consigliabile modificare i file direttamente nell'app per le funzioni in Azure. È consigliabile scaricare i file dell'app in locale, usando Core Tools per installare estensioni e altri pacchetti, convalidare le modifiche e quindi ripubblicare l'app usando Core Tools o uno degli altri metodi di distribuzione supportati.

L'editor di Funzioni integrato nella portale di Azure consente di aggiornare i file di codice e configurazione della funzione (function.json) direttamente nel portale.

  1. Selezionare l'app per le funzioni e quindi in Funzioni selezionare Funzioni.
  2. Scegliere la funzione e selezionare Codice e test in Sviluppo.
  3. Scegliere il file da modificare e selezionare Salva al termine.

I file nella radice dell'app, ad esempio function.proj o extensions.csproj, devono essere creati e modificati usando Strumenti avanzati (Kudu).

  1. Selezionare l'app per le funzioni, quindi in Strumenti di sviluppo selezionare Strumenti>avanzati Go.

  2. Se richiesto, accedere al sito SCM con le credenziali di Azure.

  3. Scegliere CMD dal menu Console di debug.

  4. Passare a .\site\wwwroot, selezionare il pulsante più (+) nella parte superiore e selezionare Nuovo file.

  5. Assegnare un nome al file, ad esempio extensions.csproj e premere INVIO.

  6. Selezionare il pulsante Modifica accanto al nuovo file, aggiungere o aggiornare il codice nel file e selezionare Salva.

  7. Per un file di progetto come extensions.csproj, eseguire il comando seguente per ricompilare il progetto di estensioni:

    dotnet build extensions.csproj
    

Funzionalità della piattaforma

Le app per le funzioni vengono eseguite in e gestite dalla piattaforma del servizio app Azure. Di conseguenza, le app per le funzioni hanno accesso alla maggior parte delle funzionalità di piattaforma di hosting Web di base di Azure. Quando si lavora nel portale di Azure, il riquadro sinistro è il percorso in cui si accede alle numerose funzionalità della piattaforma servizio app che è possibile usare nelle app per le funzioni.

La matrice seguente indica il supporto delle funzionalità del portale tramite il piano di hosting e il sistema operativo:

Funzionalità Piano a consumo Piano Premium Piano Dedicato
Strumenti avanzati (Kudu) Finestre: ✔
Linux: X
Editor del servizio app Finestre: ✔
Linux: X
Finestre: ✔
Linux: X
Finestre: ✔
Linux: X
Backup X X
Console Windows: riga di comando
Linux: X
Windows: riga di comando
Linux: SSH
Windows: riga di comando
Linux: SSH

Il resto di questo articolo è incentrato sulle funzionalità seguenti nel portale utili per le app per le funzioni:

Per altre informazioni su come usare le impostazioni del servizio app, vedere Configurare le impostazioni di del servizio app di Azure.

Editor del servizio app

The App Service editor

L'editor del servizio app è un editor avanzato, disponibile nel portale, che si può usare per modificare i file di configurazione JSON e i file del codice nello stesso modo. Quando si sceglie questa opzione, viene aperta una scheda separata del browser con un editor di base. Ciò consente di realizzare l'integrazione con l'archivio Git, eseguire il codice e il relativo debug e modificare le impostazioni dell'app per le funzioni. Questo editor offre un ambiente di sviluppo avanzato per le funzioni rispetto all'editor di funzioni predefinito.

È consigliabile sviluppare le funzioni nel computer locale. Quando si sviluppa in locale e si pubblica in Azure, i file di progetto sono di sola lettura nel portale. Per altre informazioni, vedere Codice e test Funzioni di Azure in locale.

Console

Function app console

La console nel portale è uno strumento ideale per gli sviluppatori quando si desidera interagire con l'app per le funzioni dalla riga di comando. I comandi comuni includono la creazione e lo spostamento di file e directory, nonché l'esecuzione di script e file batch.

Quando si sviluppa in locale, è consigliabile usare Funzioni di Azure Core Tools e l'interfaccia della riga di comando di Azure.

Strumenti avanzati (Kudu)

Configure Kudu

Gli strumenti avanzati per il servizio app, noto anche come Kudu, consentono l'accesso alle funzionalità amministrative avanzate dell'app per le funzioni. Dalla Kudu è possibile gestire informazioni di sistema, impostazioni dell'app, variabili di ambiente, estensioni del sito, intestazioni HTTP e variabili del server. È anche possibile avviare Kudu selezionando l'endpoint SCM per l'app per le funzioni, ad esempiohttps://<myfunctionapp>.scm.azurewebsites.net/

Centro distribuzione

Quando si usa una soluzione di controllo del codice sorgente per sviluppare e gestire il codice delle funzioni, Il Centro distribuzione consente di compilare e distribuire dal controllo del codice sorgente. Il progetto viene compilato e distribuito in Azure quando si apportano aggiornamenti. Per altre informazioni, vedere Tecnologie di distribuzione in Funzioni di Azure.

Condivisione di risorse tra le origini

Per impedire l'esecuzione di codice dannoso nel client, i browser moderni bloccano le richieste da applicazioni Web alle risorse in esecuzione in un dominio separato. La condivisione di risorse tra le origini (CORS) consente a un'intestazione Access-Control-Allow-Origin di dichiarare quali origini sono autorizzate a chiamare gli endpoint nell'app per le funzioni.

Portale

Quando si configura l'elenco Origini consentite per l'app per le funzioni, l'intestazione Access-Control-Allow-Origin viene aggiunta automaticamente a tutte le risposte dagli endpoint HTTP nell'app per le funzioni.

Configure function app's CORS list

Il carattere jolly (*) viene ignorato se è presente un'altra voce di dominio.

Usare il az functionapp cors add comando per aggiungere un dominio all'elenco delle origini consentite. Nell'esempio seguente viene aggiunto il dominio contoso.com:

az functionapp cors add --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--allowed-origins https://contoso.com

Usare il az functionapp cors show comando per elencare le origini consentite correnti.

Autenticazione

Configure authentication for a function app

Quando le funzioni usano un trigger HTTP, è possibile richiedere innanzitutto l'autenticazione delle chiamate. servizio app supporta l'autenticazione e l'accesso di Microsoft Entra con provider di social networking, ad esempio Facebook, Microsoft e Twitter. Per informazioni dettagliate sulla configurazione di specifici provider di autenticazione, vedere Autenticazione e autorizzazione nel servizio app di Azure.

Passaggi successivi