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
- Completare la guida introduttiva Creare un'app JavaScript con app Azure Configurazione.
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 .
Aprire il file app.js e aggiornare la
load
funzione. Aggiungere unrefreshOptions
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 larefreshIntervalInMs
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 } });
La configurazione
refreshOptions
da sola non aggiornerà automaticamente la configurazione. È necessario chiamare ilrefresh
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 chiamarerefresh
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 larefresh
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 larefresh
chiamata viene attivata dall'attività dell'applicazione. La chiamatarefresh
è 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 }
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
Eseguire lo script:
node app.js
Verificare l'output:
Hello World!
Continua a stampare "Hello World!" in una nuova riga ogni 5 secondi.
Aggiornare i valori chiave seguenti all'archivio di configurazione app Azure. Aggiornare prima il valore della chiave
message
e quindisentinel
.Chiave valore Etichetta Content type message Hello World - Aggiornato! Lasciare vuoto Lasciare vuoto sentinel 2 Lasciare vuoto Lasciare vuoto 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.
- Accedere al portale di Azure e selezionare Gruppi di risorse.
- Nella casella Filtra per nome immettere il nome del gruppo di risorse.
- Nell'elenco dei risultati selezionare il nome del gruppo di risorse per visualizzare una panoramica.
- Selezionare Elimina gruppo di risorse.
- 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.