Condividi tramite


Esercitazione: Usare la configurazione dinamica in JavaScript

Questa esercitazione illustra come abilitare la configurazione dinamica nelle applicazioni JavaScript. L'esempio in questa esercitazione si basa sull'applicazione di esempio introdotta nella guida introduttiva a JavaScript. Prima di continuare, completare Creare un'app JavaScript con app Azure Configurazione.

Prerequisiti

Aggiungere coppie chiave-valore

Aggiungere il valore chiave seguente all'archivio di configurazione app Azure. 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 Etichetta Tipo contenuto
message Salve, mondo! Lasciare vuoto Lasciare vuoto
sentinel 1 Lasciare vuoto Lasciare vuoto

Nota

Una chiave sentinel è una chiave che si aggiorna dopo aver completato la modifica di tutte le altre chiavi. L'app monitora la chiave sentinel. Quando viene rilevata una modifica, l'app aggiorna tutti i valori di configurazione. Questo approccio consente di garantire la coerenza della configurazione nell'app e riduce il numero complessivo di richieste effettuate all'archivio di configurazione app Azure, rispetto al monitoraggio di tutte le chiavi per le modifiche.

Ricaricare i dati di Configurazione app

Negli esempi seguenti viene illustrato come usare i valori di configurazione aggiornabili nelle applicazioni console. Scegliere le istruzioni seguenti in base al modo in cui l'applicazione utilizza i dati di configurazione caricati da Configurazione app, come Map oggetto di configurazione o .

È possibile connettersi a Configurazione app usando Microsoft Entra ID (scelta consigliata) o un stringa di connessione. Il frammento di codice seguente illustra l'uso dell'ID Microsoft Entra. Usare DefaultAzureCredential per eseguire l'autenticazione nell'archivio Configurazione app. Durante il completamento dell'argomento di avvio rapido elencato nei prerequisiti, è già stato assegnato il ruolo lettore dati Configurazione app.

  1. Aprire il file app.js e aggiornare la load funzione. Aggiungere un refreshOptions parametro per abilitare le opzioni di aggiornamento e configurare l'aggiornamento. La configurazione caricata verrà aggiornata quando viene rilevata una modifica nel server. Per impostazione predefinita, viene usato un intervallo di aggiornamento di 30 secondi, ma è possibile eseguirne l'override con la refreshIntervalInMs proprietà .

    // Connecting to Azure App Configuration using endpoint and token credential
    const settings = await load(endpoint, credential, {
        // Setting up to refresh when the sentinel key is changed
        refreshOptions: {
            enabled: true,
            watchedSettings: [{ key: "sentinel" }] // Watch for changes to the key "sentinel" and refreshes the configuration when it changes
        }
    });
    
  2. La configurazione refreshOptions da sola non aggiornerà automaticamente la configurazione. È necessario chiamare il refresh metodo per attivare un aggiornamento. Questa progettazione impedisce richieste non necessarie di Configurazione app quando l'applicazione è inattiva. È necessario includere la chiamata in cui si verifica l'attività refresh dell'applicazione. Questa operazione è nota come aggiornamento della configurazione guidata dall'attività. Ad esempio, è possibile chiamare refresh quando si elabora un messaggio in arrivo o un ordine o all'interno di un'iterazione in cui si esegue un'attività complessa. In alternativa, è possibile usare un timer se l'applicazione è sempre attiva. In questo esempio, refresh viene chiamato in un ciclo a scopo dimostrativo. Anche se la refresh chiamata non riesce per qualsiasi motivo, l'applicazione continuerà a usare la configurazione memorizzata nella cache. Verrà eseguito un altro tentativo quando l'intervallo di aggiornamento configurato è passato e la refresh chiamata viene attivata dall'attività dell'applicazione. La chiamata refresh è un no-op prima che l'intervallo di aggiornamento configurato venga trascorso, quindi l'impatto sulle prestazioni è minimo anche se viene chiamato frequentemente.

    Aggiungere il codice seguente per eseguire il polling delle modifiche di configurazione dei valori chiave sorvegliati.

    // Polling for configuration changes every 5 seconds
    while (true) {
        await sleepInMs(5000); // Waiting before the next refresh
        await settings.refresh(); // Refreshing the configuration setting
        console.log(settings.get("message")); // Consume current value of message from a Map
    }
    
  3. Ora il file app.js dovrebbe essere simile al frammento di codice seguente:

    const sleepInMs = require("util").promisify(setTimeout);
    const { load } = require("@azure/app-configuration-provider");
    const { DefaultAzureCredential } = require("@azure/identity");
    const endpoint = process.env.AZURE_APPCONFIG_ENDPOINT;
    const credential = new DefaultAzureCredential(); // For more information, see https://learn.microsoft.com/azure/developer/javascript/sdk/credential-chains#use-defaultazurecredential-for-flexibility
    
    async function run() {
        // Connecting to Azure App Configuration using endpoint and token credential
        const settings = await load(endpoint, credential, {
            // Setting up to refresh when the sentinel key is changed
            refreshOptions: {
                enabled: true,
                watchedSettings: [{ key: "sentinel" }] // Watch for changes to the key "sentinel" and refreshes the configuration when it changes
            }
        });
    
        // Polling for configuration changes every 5 seconds
        while (true) {
            await sleepInMs(5000); // Waiting before the next refresh
            await settings.refresh(); // Refreshing the configuration setting
            console.log(settings.get("message")); // Consume current value of message from a Map
        }
    }
    
    run().catch(console.error);
    

Eseguire l'applicazione

  1. Eseguire lo script:

    node app.js
    
  2. Verificare l'output:

    Hello World!
    

    Continua a stampare "Hello World!" in una nuova riga ogni 5 secondi.

  3. Aggiornare i valori chiave seguenti all'archivio di configurazione app Azure. Aggiornare prima il valore della chiave message e quindi sentinel.

    Chiave valore Etichetta Tipo contenuto
    message Hello World - Aggiornato! Lasciare vuoto Lasciare vuoto
    sentinel 2 Lasciare vuoto Lasciare vuoto
  4. Dopo l'aggiornamento dei valori, il valore aggiornato viene stampato dopo l'intervallo di aggiornamento.

    Hello World - Updated!
    

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 esercitazione è stato abilitato l'app JavaScript per aggiornare dinamicamente le impostazioni di configurazione da app Azure Configurazione. Per informazioni su come usare un'identità gestita di Azure per semplificare l'accesso a app Azure Configurazione, passare all'esercitazione successiva.