Guida introduttiva: Creare un'app Funzioni di Azure con configurazione di app Azure

In questa guida di avvio rapido si incorpora il servizio Configurazione app di Azure in un'app Funzioni di Azure per centralizzare l'archiviazione e la gestione di tutte le impostazioni dell'applicazione separatamente dal codice.

Prerequisiti

Aggiungere un valore chiave

Aggiungere il valore chiave seguente all'archivio Configurazione app e lasciare Etichetta e Tipo di contenuto con i valori predefiniti. Per altre informazioni su come aggiungere valori chiave a un archivio usando il portale di Azure o l'interfaccia della riga di comando, vedere Creare un valore chiave.

Chiave valore
TestApp:Impostazioni:Message Dati della configurazione di app Azure

Creare un'app Funzioni

Il modello di progetto Funzioni di Azure in Visual Studio crea un progetto di libreria di classi C# che è possibile pubblicare in un'app per le funzioni in Azure. È possibile usare un'app per le funzioni per raggruppare le funzioni in un'unità logica e semplificare la gestione, la distribuzione, il ridimensionamento e la condivisione delle risorse.

  1. Nel menu di Visual Studio selezionare File>Nuovo>Progetto.

  2. In Crea un nuovo progetto immettere funzioni nella casella di ricerca, scegliere il modello Funzioni di Azure e quindi selezionare Avanti.

  3. In Configura il nuovo progetto immettere un nome per il progetto e quindi selezionare Crea. Il nome dell'app per le funzioni deve essere valido come spazio dei nomi C#, quindi non usare caratteri di sottolineatura, trattini o altri caratteri non alfanumerici.

  4. Per le impostazioni di Crea una nuova applicazione Funzioni di Azure usare i valori della tabella seguente:

    Impostazione valore Descrizione
    Versione di .NET Isolato .NET 6 Questo valore crea un progetto di funzione che viene eseguito in un processo di lavoro isolato. Il processo di lavoro isolato supporta altre versioni non LTS di .NET e anche .NET Framework. Per altre informazioni, vedere Panoramica delle versioni del runtime per Funzioni di Azure.
    Modello di funzione Trigger HTTP Con questo valore viene creata una funzione attivata da una richiesta HTTP.
    Account di archiviazione (AzureWebJobsStorage) Emulatore di archiviazione Poiché un'app per le funzioni in Azure richiede un account di archiviazione, ne viene assegnata o creata una quando si pubblica il progetto in Azure. Un trigger HTTP non usa una stringa di connessione dell'account di archiviazione di Azure. Tutti gli altri tipi di trigger richiedono una stringa di connessione dell'account di archiviazione di Azure valida.
    Livello di autorizzazione Anonimo Viene creata una funzione che può essere attivata da qualsiasi client senza dover fornire una chiave. Questa impostazione di autorizzazione consente di testare più facilmente la nuova funzione. Per altre informazioni sulle chiavi e l'autorizzazione, vedere Chiavi di autorizzazione in Associazioni di webhook e HTTP.

    Impostazioni del progetto di Funzioni di Azure

    Assicurarsi di impostare Livello di autorizzazione su Anonimo. Se si sceglie il livello predefinito Funzione, è necessario fornire la chiave di funzione nelle richieste di accesso all'endpoint della funzione.

  5. Selezionare Crea per creare il progetto di funzione e la funzione attivata da HTTP.

Connettersi a un archivio di Configurazione app

Questo progetto userà l'inserimento delle dipendenze in Funzioni di Azure .NET e aggiungerà Configurazione app di Azure come origine di configurazione supplementare. Funzioni di Azure supportano l'esecuzione in-process o il processo isolato. Selezionare quello che soddisfa i requisiti.

  1. Fare clic con il pulsante destro del mouse sul progetto e scegliere Gestisci pacchetti NuGet. Nella scheda Sfoglia cercare e aggiungere i pacchetti NuGet seguenti al progetto.

  2. Aggiungere il codice per connettersi a app Azure Configurazione.

    Aggiungere un nuovo file, Startup.cs, con il codice seguente. Definisce una classe denominata Startup che implementa la classe astratta FunctionsStartup. Viene usato un attributo di assembly per specificare il nome del tipo usato durante l'avvio di Funzioni di Azure.

    Il metodo ConfigureAppConfiguration viene sottoposto a override e il provider di Configurazione app di Azure viene aggiunto come origine di configurazione supplementare chiamando AddAzureAppConfiguration(). Il metodo Configure viene lasciato vuoto perché non è necessario registrare servizi a questo punto.

    using System;
    using Microsoft.Azure.Functions.Extensions.DependencyInjection;
    using Microsoft.Extensions.Configuration;
    
    [assembly: FunctionsStartup(typeof(FunctionApp.Startup))]
    
    namespace FunctionApp
    {
        class Startup : FunctionsStartup
        {
            public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
            {
                string cs = Environment.GetEnvironmentVariable("ConnectionString");
                builder.ConfigurationBuilder.AddAzureAppConfiguration(cs);
            }
    
            public override void Configure(IFunctionsHostBuilder builder)
            {
            }
        }
    }
    
  3. Aprire Function1.cs e aggiungere lo spazio dei nomi seguente, se non è già presente.

    using Microsoft.Extensions.Configuration;
    

    Aggiungere o aggiornare il costruttore usato per ottenere un'istanza di IConfiguration tramite inserimento delle dipendenze.

    private readonly IConfiguration _configuration;
    
    public Function1(IConfiguration configuration)
    {
        _configuration = configuration;
    }
    
  4. Aggiornare il metodo Run in modo da leggere i valori dalla configurazione.

    [FunctionName("Function1")]
    public async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
    
        // Read configuration data
        string keyName = "TestApp:Settings:Message";
        string message = _configuration[keyName];
    
        return message != null
            ? (ActionResult)new OkObjectResult(message)
            : new BadRequestObjectResult($"Please create a key-value with the key '{keyName}' in App Configuration.");
    }
    

    Nota

    La classe Function1 e il metodo Run non devono essere statici. Rimuovere il modificatore static se è stato generato automaticamente.

Testare la funzione in locale

  1. Impostare una variabile di ambiente denominata ConnectionString sulla chiave di accesso all'archivio di Configurazione app. Se si usa il prompt dei comandi di Windows, eseguire il comando seguente e riavviare il prompt per rendere effettiva la modifica:

        setx ConnectionString "connection-string-of-your-app-configuration-store"
    

    Se si usa Windows PowerShell, eseguire il comando seguente:

        $Env:ConnectionString = "connection-string-of-your-app-configuration-store"
    

    Se si usa macOS o Linux, eseguire il comando seguente:

        export ConnectionString='connection-string-of-your-app-configuration-store'
    
  2. Premere F5 per testare la funzione. Se viene visualizzata, accettare la richiesta di Visual Studio di scaricare e installare gli strumenti dell'interfaccia della riga di comando Azure Functions Core Tools. Potrebbe essere necessario anche abilitare un'eccezione del firewall per consentire agli strumenti di gestire le richieste HTTP.

  3. Copiare l'URL della funzione dall'output di runtime di Funzioni di Azure.

    Guida introduttiva: debug di funzioni in VS

  4. Incollare l'URL per la richiesta HTTP nella barra degli indirizzi del browser. L'immagine seguente mostra la risposta nel browser alla richiesta GET locale restituita dalla funzione.

    Guida introduttiva: avvio della funzione in locale

Pulire le risorse

Se non si vuole continuare a usare le risorse create in questo articolo, eliminare il gruppo di risorse creato qui per evitare addebiti.

Importante

L'eliminazione di un gruppo di risorse è irreversibile. Il gruppo di risorse e tutte le risorse in esso contenute vengono eliminati in modo permanente. Assicurarsi di non eliminare accidentalmente il gruppo di risorse o le risorse sbagliate. Se le risorse per questo articolo sono state create in un gruppo di risorse che contiene altre risorse che si vogliono mantenere, eliminare ogni risorsa singolarmente dal rispettivo riquadro anziché eliminare il gruppo di risorse.

  1. Accedere al portale di Azure e selezionare Gruppi di risorse.
  2. Nella casella Filtra per nome immettere il nome del gruppo di risorse.
  3. Nell'elenco dei risultati selezionare il nome del gruppo di risorse per visualizzare una panoramica.
  4. Selezionare Elimina gruppo di risorse.
  5. Verrà chiesto di confermare l'eliminazione del gruppo di risorse. Immettere il nome del gruppo di risorse per confermare e selezionare Elimina.

Dopo qualche istante, il gruppo di risorse e tutte le risorse che contiene vengono eliminati.

Passaggi successivi

In questa guida di avvio rapido è stato creato un nuovo archivio di Configurazione app, che è stato usato con un'app Funzioni di Azure con il provider di Configurazione app. Per informazioni su come configurare l'app di Funzioni di Azure per aggiornare dinamicamente le impostazioni di configurazione, continuare con l'esercitazione successiva.

Per informazioni su come usare un'identità gestita di Azure per semplificare l'accesso a Configurazione app, continuare con l'esercitazione successiva.