Guida introduttiva: Creare un'app ASP.NET Core con configurazione di app Azure

In questo argomento di avvio rapido si userà app Azure Configurazione per esternalizzare l'archiviazione e la gestione delle impostazioni dell'app per un'app ASP.NET Core. ASP.NET Core compila un singolo oggetto di configurazione basato su chiave-valore usando le impostazioni di uno o più provider di configurazione. Configurazione app offre una libreria di provider di configurazione .NET. È quindi possibile usare Configurazione app come origine di configurazione aggiuntiva per l'app. Se hai un'app esistente, per iniziare a usare Configurazione app, dovrai solo apportare alcune piccole modifiche al codice di avvio dell'app.

Prerequisiti

Suggerimento

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire le istruzioni della riga di comando riportate in questo articolo. Include strumenti comuni di Azure preinstallati, tra cui .NET Core SDK. Se è stato eseguito l'accesso alla sottoscrizione di Azure, avviare Azure Cloud Shell da shell.azure.com. Per altre informazioni su Azure Cloud Shell, leggere la documentazione

Aggiungere valori chiave

Aggiungere i valori chiave seguenti 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:BackgroundColor white
TestApp:Impostazioni:FontColor black
TestApp:Impostazioni:FontSize 24
TestApp:Impostazioni:Message Dati della configurazione di app Azure

Creare un'app Web ASP.NET Core

Usare l'interfaccia della riga di comando di .NET Core per creare un nuovo progetto di app Web di ASP.NET Core. Azure Cloud Shell offre questi strumenti, disponibili anche nelle piattaforme Windows, macOS e Linux.

Eseguire il comando seguente per creare un'app Web ASP.NET Core in una nuova cartella TestAppConfig :

dotnet new webapp --output TestAppConfig --framework net6.0

Connettersi all'archivio di Configurazione app

  1. Passare alla directory del progetto TestAppConfig ed eseguire il comando seguente per aggiungere un riferimento al pacchetto NuGet Microsoft.Azure.AppConfiguration.AspNetCore :

    dotnet add package Microsoft.Azure.AppConfiguration.AspNetCore
    
  2. Esegui il comando seguente: Il comando usa Secret Manager per archiviare un segreto denominato ConnectionStrings:AppConfig, che archivia il stringa di connessione per l'archivio Configurazione app. Sostituire il segnaposto <your_connection_string> con la stringa di connessione dell'archivio di Configurazione app. È possibile trovare il stringa di connessione in Chiavi di accesso dell'archivio Configurazione app nel portale di Azure.

    dotnet user-secrets init
    dotnet user-secrets set ConnectionStrings:AppConfig "<your_connection_string>"
    

    Suggerimento

    Alcune shell troncheranno la stringa di connessione se non è racchiusa tra virgolette. Verificare che l'output del comando dotnet user-secrets list mostri l'intera stringa di connessione. In caso contrario, eseguire di nuovo il comando racchiudendo la stringa di connessione tra virgolette.

    Secret Manager archivia il segreto all'esterno dell'albero del progetto, che consente di evitare la condivisione accidentale dei segreti all'interno del codice sorgente. Viene usato solo per testare l'app Web in locale. Quando l'app viene distribuita in Azure come servizio app, usare le stringhe di Connessione ion, le impostazioni dell'applicazione o le variabili di ambiente per archiviare il stringa di connessione. In alternativa, per evitare stringa di connessione tutti insieme, è possibile connettersi a Configurazione app usando identità gestite o altre identità di Microsoft Entra.

  3. Aprire Program.cs e aggiungere app Azure Configuration come origine di configurazione aggiuntiva chiamando il AddAzureAppConfiguration metodo .

    var builder = WebApplication.CreateBuilder(args);
    
    // Retrieve the connection string
    string connectionString = builder.Configuration.GetConnectionString("AppConfig");
    
    // Load configuration from Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(connectionString);
    
    // The rest of existing code in program.cs
    // ... ...
    

    Questo codice si connetterà all'archivio Configurazione app usando un stringa di connessione e caricherà tutti i valori chiave senza etichette. Per altre informazioni sul provider di Configurazione app, vedere le informazioni di riferimento sull'API del provider Configurazione app.

Leggere valori dall'archivio di Configurazione app

In questo esempio si aggiornerà una pagina Web per visualizzarne il contenuto usando le impostazioni configurate nell'archivio Configurazione app.

  1. Aggiungere un file Impostazioni.cs nella radice della directory del progetto. Definisce una classe fortemente tipizzata Settings per la configurazione che si intende usare. Sostituire lo spazio dei nomi con il nome del progetto.

    namespace TestAppConfig
    {
        public class Settings
        {
            public string BackgroundColor { get; set; }
            public long FontSize { get; set; }
            public string FontColor { get; set; }
            public string Message { get; set; }
        }
    }
    
  2. Associare la TestApp:Settings sezione nella configurazione all'oggetto Settings .

    Aggiornare Program.cs con il codice seguente e aggiungere lo TestAppConfig spazio dei nomi all'inizio del file.

    using TestAppConfig;
    
    // Existing code in Program.cs
    // ... ...
    
    builder.Services.AddRazorPages();
    
    // Bind configuration "TestApp:Settings" section to the Settings object
    builder.Services.Configure<Settings>(builder.Configuration.GetSection("TestApp:Settings"));
    
    var app = builder.Build();
    
    // The rest of existing code in program.cs
    // ... ...
    
  3. Aprire Index.cshtml.cs nella directory Pages e aggiornare la IndexModel classe con il codice seguente. Aggiungere lo using Microsoft.Extensions.Options spazio dei nomi all'inizio del file, se non è già presente.

    public class IndexModel : PageModel
    {
        private readonly ILogger<IndexModel> _logger;
    
        public Settings Settings { get; }
    
        public IndexModel(IOptionsSnapshot<Settings> options, ILogger<IndexModel> logger)
        {
            Settings = options.Value;
            _logger = logger;
        }
    }
    
  4. Aprire Index.cshtml nella directory Pages e aggiornare il contenuto con il codice seguente.

    @page
    @model IndexModel
    @{
        ViewData["Title"] = "Home page";
    }
    
    <style>
        body {
            background-color: @Model.Settings.BackgroundColor;
        }
    
        h1 {
            color: @Model.Settings.FontColor;
            font-size: @(Model.Settings.FontSize)px;
        }
    </style>
    
    <h1>@Model.Settings.Message</h1>
    

Compilare ed eseguire l'app in locale

  1. Per compilare l'app usando il interfaccia della riga di comando di .NET Core, passare alla directory radice del progetto. Eseguire il comando seguente nella shell dei comandi:

    dotnet build
    
  2. Al termine della compilazione, eseguire questo comando per eseguire l'app Web in locale:

    dotnet run
    
  3. L'output dotnet run del comando contiene due URL. Aprire un browser e passare a uno di questi URL per accedere all'applicazione. Ad esempio: https://localhost:5001.

    Se si sta lavorando in Azure Cloud Shell, selezionare il pulsante Anteprima Web e quindi Configura. Quando viene richiesto di configurare la porta per l'anteprima, immettere 5000 e selezionare Apri e sfoglia.

    Screenshot of Azure Cloud Shell. Locate Web Preview.

    La pagina Web è simile alla seguente: Screenshot of the browser.Launching quickstart app locally.

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

Questa guida introduttiva spiega come:

  • È stato effettuato il provisioning di un nuovo archivio di Configurazione app.
  • Connessione nell'archivio Configurazione app usando la libreria del provider di Configurazione app.
  • Leggere i valori chiave dell'archivio Configurazione app con la libreria del provider di configurazione.
  • Visualizzazione di una pagina Web con le impostazioni configurate nell'archivio Configurazione app.

Per informazioni su come configurare l'app Web ASP.NET Core per aggiornare dinamicamente le impostazioni di configurazione, continuare con l'esercitazione successiva.