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 valori chiave

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, vedere Creare un valore chiave.

Chiave valore Etichetta Content type
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 .

  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 connection string
    const settings = await load(connectionString, {
        // 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 connectionString = process.env.AZURE_APPCONFIG_CONNECTION_STRING;
    
    async function run() {
        // Connecting to Azure App Configuration using connection string
        const settings = await load(connectionString, {
            // 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 Content type
    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.