Condividi tramite


Avvio rapido: Creare un'app ASP.NET Core con Configurazione app di Azure

In questo avvio rapido si userà Configurazione app di Azure 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 raccolta dei provider di configurazione .NET. È quindi possibile usare Configurazione app come origine di configurazione aggiuntiva per l'app. Se si dispone di un'app esistente, per iniziare a usare Configurazione app saranno necessarie solo 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 di Azure comuni preinstallati, incluso .NET 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 coppie chiave-valore

Aggiungere il valore chiave seguente all'archivio di 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, andare a Creare un valore chiave.

Chiave valore
TestApp:Settings:BackgroundColor bianco
TestApp:Settings:FontColor nero
TestApp:Settings:FontSize 24
TestApp:Settings:Message Dati di Configurazione app di Azure

Creare un'app Web ASP.NET Core

Usare l'interfaccia della riga di comando di .NET per creare un nuovo progetto di app Web 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

Connettersi all'archivio di Configurazione app

Connettersi all'archivio di Configurazione app usando Microsoft Entra ID (scelta consigliata) o una stringa di connessione.

  1. Passare alla directory del progetto TestAppConfig ed eseguire il comando seguente per aggiungere riferimenti al pacchetto NuGet.

    dotnet add package Microsoft.Azure.AppConfiguration.AspNetCore
    dotnet add package Azure.Identity
    
  2. Creare un segreto utente per l'applicazione passando alla cartella TestAppConfig ed eseguendo il comando seguente.

    Il comando usa Manager segreti per archiviare un segreto denominato Endpoints:AppConfiguration, il che archivia l'endpoint per l'archivio di Configurazione app. Sostituire il segnaposto <your-App-Configuration-endpoint> con l'endpoint dell'archivio di Configurazione app. È possibile trovare l'endpoint nel pannello Panoramica dell'archivio di Configurazione app nel portale di Azure.

    dotnet user-secrets init
    dotnet user-secrets set Endpoints:AppConfiguration "<your-App-Configuration-endpoint>"
    
  3. Aprire Program.cs e aggiungere gli spazi dei nomi seguenti:

    using Microsoft.Extensions.Configuration;
    using Microsoft.Azure.AppConfiguration.AspNetCore;
    using Azure.Identity;
    
  4. Connettersi all'archivio di Configurazione app chiamando il metodo AddAzureAppConfigurationnel file Program.cs.

    Usare DefaultAzureCredential per eseguire l'autenticazione nell'archivio di Configurazione app. Seguire le istruzioni per assegnare le credenziali al ruolo Lettore dati di Configurazione app. Assicurarsi di consentire tempo sufficiente per la propagazione dell'autorizzazione prima di eseguire l'applicazione.

    var builder = WebApplication.CreateBuilder(args); 
    
    // Retrieve the endpoint
    string endpoint = builder.Configuration.GetValue<string>("Endpoints:AppConfiguration")
        ?? throw new InvalidOperationException("The setting `Endpoints:AppConfiguration` was not found.");
    
    // Load configuration from Azure App Configuration 
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        options.Connect(new Uri(endpoint), new DefaultAzureCredential());
    });
    
    // The rest of existing code in program.cs
    // ... ...    
    

    Questo codice carica tutti i valori chiave senza etichetta dall'archivio di Configurazione app. Per altre informazioni sul caricamento dei dati da Configurazione app, vedere Riferimento API del provider di 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 di Configurazione app.

  1. Aggiungere un file Settings.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 sezione TestApp:Settings nella configurazione all'oggetto Settings.

    Aggiornare Program.cs con il codice seguente e aggiungere lo spazio dei nomi TestAppConfig 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 Pagine e aggiornare la classe IndexModel con il codice seguente. Aggiungere lo spazio dei nomi using Microsoft.Extensions.Options 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 il file Index.cshtml nella directory Pagine 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, 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 chiesto di configurare la porta per l'anteprima, immettere 5000 e selezionare Apri ed esplora.

    Screenshot di Azure Cloud Shell. Individuare l'anteprima Web.

    La pagina Web avrà un aspetto simile al seguente: Screenshot del browser. Avvio dell'app di avvio rapido 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

Questa guida introduttiva spiega come:

  • È stato effettuato il provisioning di un nuovo archivio di Configurazione app.
  • Connesso all'archivio di Configurazione app tramite la raccolta dei provider di Configurazione app.
  • Leggere i valori chiave dell'archivio di Configurazione app con la raccolta dei provider di configurazione.
  • Visualizzazione di una pagina Web che utilizza le impostazioni configurate nell'archivio di Configurazione app.

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