Compartir a través de


Tutorial: Uso de la configuración dinámica en JavaScript

En este tutorial, aprenderá a habilitar la configuración dinámica en las aplicaciones de JavaScript. El ejemplo de este tutorial se basa en la aplicación de ejemplo introducida en el inicio rápido de JavaScript. Antes de continuar, finalice Creación de una aplicación de JavaScript con Azure App Configuration.

Requisitos previos

Agregar pares de clave-valor

Agregue el siguiente par de clave-valor al almacén de Azure App Configuration. Para obtener más información sobre cómo agregar pares clave-valor a un almacén mediante Azure Portal o la CLI, vaya a Creación de un par clave-valor.

Clave Value Etiqueta Tipo de contenido
message Hola mundo Dejar en blanco Dejar en blanco
sentinel 1 Dejar en blanco Dejar en blanco

Nota:

Una clave de Sentinel es una clave que se actualiza después de completar el cambio de todas las demás claves. La aplicación supervisa la clave de Sentinel. Cuando se detecta un cambio, la aplicación actualiza todos los valores de configuración. Este enfoque ayuda a garantizar la coherencia de la configuración de la aplicación y reduce el número total de solicitudes realizadas al almacén de Azure App Configuration, en comparación con la supervisión de los cambios en todas las claves.

Recarga de datos de App Configuration

En los ejemplos siguientes se muestra cómo usar valores de configuración actualizables en aplicaciones de consola. Elija las instrucciones siguientes en función de cómo la aplicación consume los datos de configuración cargados desde App Configuration, ya sea como un Map o un objeto de configuración.

Puede conectarse a App Configuration mediante Microsoft Entra ID (recomendado) o una cadena de conexión. El siguiente fragmento de código muestra cómo usar Microsoft Entra ID. Use DefaultAzureCredential para autenticarse en el almacén de App Configuration. Al completar el inicio rápido que se muestra en los requisitos previos, ya asignó a su credencial el rol de Lector de datos de App Configuration.

  1. Abra el archivo app.js y actualice la función load. Agregue un parámetro refreshOptions para habilitar las opciones de actualización y configurar la actualización. La configuración cargada se actualizará cuando se detecte un cambio en el servidor. De forma predeterminada, se usa un intervalo de actualización de 30 segundos, pero puede invalidarlo con la propiedad refreshIntervalInMs.

    // 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 configuración de refreshOptions por sí sola no actualizará automáticamente la configuración. Debe llamar al método refresh para desencadenar una actualización. Este diseño evita solicitudes innecesarias a App Configuration cuando la aplicación está inactiva. Debe incluir la llamada refresh en la que se produce la actividad de la aplicación. Esto se conoce como actualización de configuración controlada por actividad. Por ejemplo, puede llamar a refresh al procesar un mensaje entrante o un pedido, o dentro de una iteración en la que se realiza una tarea compleja. Como alternativa, puede usar un temporizador si la aplicación siempre está activa. En este ejemplo, se llama a refresh en un bucle con fines de demostración. Incluso si se produce un error en la llamada a refresh por cualquier motivo, la aplicación seguirá usando la configuración almacenada en caché. Otro intento se realizará cuando se haya superado el intervalo de actualización configurado y la actividad de la aplicación desencadene la llamada a refresh. Llamar a refresh es una operación no operativa antes de que transcurre el intervalo de actualización configurado, por lo que su impacto en el rendimiento es mínimo incluso si se llama con frecuencia.

    Agregue el código siguiente para sondear los cambios de configuración de los valores de clave observados.

    // 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. Ahora el archivo app.js debería tener un aspecto similar al siguiente fragmento de código:

    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);
    

Ejecución de la aplicación

  1. Ejecute el script:

    node app.js
    
  2. Compruebe la salida:

    Hello World!
    

    Sigue imprimiendo "¡Hola mundo!" en una nueva línea cada 5 segundos.

  3. Actualice los siguientes pares de clave-valor en el almacén de Azure App Configuration. Actualice primero el valor de la clave message y, a continuación, sentinel.

    Key Value Etiqueta Tipo de contenido
    message ¡Hola mundo: actualizado! Dejar en blanco Dejar en blanco
    sentinel 2 Dejar en blanco Dejar en blanco
  4. Una vez actualizados los valores, el valor actualizado se imprime después del intervalo de actualización.

    Hello World - Updated!
    

Limpieza de recursos

Si no quiere seguir usando los recursos que se han creado en este artículo, elimine el grupo de recursos que creó aquí para evitar cargos.

Importante

La eliminación de un grupo de recursos es irreversible. El grupo de recursos y todos los recursos que contiene se eliminan permanentemente. Asegúrese de que no elimina por accidente el grupo de recursos o los recursos equivocados. Si creó los recursos para este artículo en un grupo de recursos que contenga los recursos que desee conservar, elimine cada recurso de forma individual desde su panel respectivo, en lugar de eliminar el grupo de recursos.

  1. Inicie sesión en Azure Portal y después seleccione Grupos de recursos.
  2. En el cuadro de texto Filtrar por nombre, escriba el nombre del grupo de recursos.
  3. En la lista resultados, seleccione el nombre del grupo de recursos para ver la información general.
  4. Seleccione Eliminar grupo de recursos.
  5. Se le pedirá que confirme la eliminación del grupo de recursos. Escriba el nombre del grupo de recursos para confirmar y seleccione Eliminar.

Transcurridos unos instantes, el grupo de recursos y todos sus recursos se eliminan.

Pasos siguientes

En este tutorial ha habilitado la aplicación de JavaScript para actualizar dinámicamente la configuración desde Azure App Configuration. Para aprender a usar una identidad administrada de Azure para simplificar el acceso a Azure App Configuration, vaya al siguiente tutorial.