Condividi tramite


Usare le etichette per fornire valori di configurazione per ambiente.

Molte applicazioni devono usare configurazioni diverse per ambienti diversi. Si supponga che un'applicazione abbia un valore di configurazione che definisce l'endpoint da usare per il database back-end. Gli sviluppatori di applicazioni usano un database diverso da quello usato nell'ambiente di produzione. L'endpoint di database usato dall'applicazione deve cambiare man mano che l'applicazione passa dallo sviluppo all'ambiente di produzione.

In Configurazione app di Azure è possibile usare le etichette per definire valori diversi per la stessa chiave. Ad esempio, è possibile definire una singola chiave con valori diversi per lo sviluppo e la produzione. È possibile specificare l'etichetta da caricare durante la connessione a Configurazione app.

Per illustrare questa funzionalità, si modificherà l'app Web creata in Avvio rapido: Creare un'app ASP.NET Core con Configurazione app di Azure per usare impostazioni di configurazione diverse per lo sviluppo e la produzione. Completare la guida di avvio rapido prima di procedere.

Specificare un'etichetta quando si aggiunge un valore di configurazione

Nel portale di Azure passare a Esplora configurazione e trovare la chiave TestApp:Settings:FontColor creata nella guida introduttiva. Seleziona il menu di scelta rapida e quindi Aggiungi Valore.

Voce di menu Aggiungi valore

Nella schermata Aggiungi valore immettere un valorerosso e un'etichetta di sviluppo. Lascia il tipo di contenuto vuoto. Selezionare Applica.

Caricare i valori di configurazione con un'etichetta specificata

Per impostazione predefinita, Configurazione app di Azure carica solo i valori di configurazione senza etichetta. Se sono state definite etichette per i valori di configurazione, è necessario specificare le etichette da usare per la connessione a Configurazione app.

Nella sezione precedente è stato creato un valore di configurazione diverso per l'ambiente di sviluppo. La variabile viene usata HostingEnvironment.EnvironmentName per determinare in modo dinamico l'ambiente in cui è in esecuzione l'app. Per altre informazioni, vedere Usare più ambienti in ASP.NET Core.

Aggiungere un riferimento allo spazio dei nomi Microsoft.Extensions.Configuration.AzureAppConfiguration per accedere alle classi KeyFilter e LabelFilter .

using Microsoft.Extensions.Configuration.AzureAppConfiguration;

Caricare i valori di configurazione con l'etichetta corrispondente all'ambiente corrente passando il nome dell'ambiente nel Select metodo :

var builder = WebApplication.CreateBuilder(args);

builder.Configuration.AddAzureAppConfiguration(options =>
    {
        string endpoint = Environment.GetEnvironmentVariable("Endpoint");
        options.Connect(new Uri(endpoint), new DefaultAzureCredential())
               // Load configuration values with no label
               .Select(KeyFilter.Any, LabelFilter.Null)
               // Override with any configuration values specific to current hosting env
               .Select(KeyFilter.Any, builder.Environment.EnvironmentName);
    });

Il Select metodo viene chiamato due volte. La prima volta carica i valori di configurazione senza etichetta. Carica quindi i valori di configurazione con l'etichetta corrispondente all'ambiente corrente. Questi valori specifici dell'ambiente prevalgono su eventuali valori corrispondenti senza etichetta. Non è necessario definire valori specifici dell'ambiente per ogni chiave. Se una chiave non ha un valore con un'etichetta corrispondente all'ambiente corrente, usa il valore senza etichetta.

Test in ambienti diversi

Aprire il launchSettings.json file nella Properties directory . Trova la voce config sotto profiles. Nella environmentVariables sezione, impostare la ASPNETCORE_ENVIRONMENT variabile su Production.

Con i nuovi valori impostati, compilare ed eseguire l'applicazione.

dotnet build
dotnet run

Usare un Web browser per passare a http://localhost:5000. Si noterà che il colore del carattere è nero.

Applicazione Web in esecuzione con configurazione di produzione

Aggiornare launchSettings.json per impostare la ASPNETCORE_ENVIRONMENT variabile su Development. Eseguire dotnet run di nuovo.

Si noterà che il colore del carattere è ora rosso. Questo perché l'applicazione usa ora il valore di TestApp:Settings:FontColor che ha l'etichetta Development . Tutti gli altri valori di configurazione rimangono uguali ai valori di produzione.

Applicazione Web in esecuzione con configurazione di sviluppo

Passaggi successivi