Integrare una pipeline CI/CD

Questo articolo spiega come usare i dati di Configurazione app di Azure in un sistema di integrazione continua e distribuzione continua.

Usare Configurazione app nella pipeline di Azure DevOps

Se è presente una pipeline di Azure DevOps, è possibile recuperare le coppie chiave-valore da Configurazione app e impostarle come variabili di attività. L'estensione Configurazione app di DevOps è un modulo aggiuntivo che fornisce questa funzionalità. Seguire le istruzioni per usare l'estensione in una sequenza di attività di compilazione o rilascio.

Distribuire i dati di Configurazione app con l'applicazione

L'applicazione potrebbe non essere eseguita se dipende da Configurazione app di Azure e non riesce a raggiungerla. Migliorare la resilienza dell'applicazione tramite la creazione di pacchetti dei dati di configurazione in un file distribuito con l'applicazione e caricato localmente durante l'avvio dell'applicazione. Questo approccio garantisce che l'applicazione abbia valori di impostazione predefiniti all'avvio. Questi valori vengono sovrascritti da tutte le modifiche più recenti in un archivio di Configurazione app quando è disponibile.

Usando la funzione Esporta di Configurazione app di Azure è possibile automatizzare il processo di recupero dei dati della configurazione corrente come un singolo file. Incorporare quindi questo file in un passaggio di compilazione o di distribuzione nella pipeline di integrazione continua e distribuzione continua (CI/CD).

L'esempio seguente illustra come includere i dati della Configurazione app di Azure come un passaggio di compilazione per l'app Web introdotta nei modelli di avvio rapido. Prima di continuare, completare le procedure descritte in Creare un'app ASP.NET Core con Configurazione app.

Per completare i passaggi riportati in questa esercitazione, è possibile usare qualsiasi editor di codice. Visual Studio Code è un'ottima scelta per le piattaforme Windows, macOS e Linux.

Prerequisiti

Se la compilazione avviene in locale, scaricare e installare l'interfaccia della riga di comando di Azure se non lo si è già fatto.

Esportare un archivio di Configurazione app

  1. Aprire il file .csproj e aggiungere il seguente script:

    <Target Name="Export file" AfterTargets="Build">
        <Message Text="Export the configurations to a temp file. " />
        <Exec WorkingDirectory="$(MSBuildProjectDirectory)" Condition="$(ConnectionString) != ''" Command="az appconfig kv export -d file --path $(OutDir)\azureappconfig.json --format json --separator : --connection-string $(ConnectionString)" />
    </Target>
    
  2. Aprire il file Program.cs e aggiornare il metodo CreateWebHostBuilder per usare il file JSON esportato effettuando una chiamata al metodo config.AddJsonFile(). Aggiungere anche lo spazio dei nomi System.Reflection.

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration((hostingContext, config) =>
            {
                var directory = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                var settings = config.Build();
    
                config.AddJsonFile(Path.Combine(directory, "azureappconfig.json"));
                config.AddAzureAppConfiguration(settings["ConnectionStrings:AppConfig"]);
            })
            .UseStartup<Startup>();
    

Compilare ed eseguire l'app in locale

  1. Impostare una variabile di ambiente denominata ConnectionString sulla chiave di accesso all'archivio di Configurazione app.

    Per compilare ed eseguire l'app in locale usando il prompt dei comandi di Windows, eseguire il comando seguente e riavviare il prompt dei comandi per rendere effettiva la modifica:

        setx ConnectionString "connection-string-of-your-app-configuration-store"
    
  2. Per compilare l'app usando l'interfaccia della riga di comando di .NET Core, eseguire questo comando nella shell dei comandi:

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

     dotnet run
    
  4. Aprire una finestra del browser e passare a http://localhost:5000, che è l'URL predefinito per l'app Web ospitata in locale.

    Screenshot che mostra la pagina locale di avvio rapido dell'app.

Passaggi successivi

In questa esercitazione, sono stati esportati i dati della Configurazione app di Azure da usare in una pipeline di distribuzione. Per altre informazioni sull'uso di Configurazione app, passare agli esempi dell'interfaccia della riga di comando di Azure.