Inicio rápido: Creación de una aplicación de consola de Node.js con Azure App Configuration
En este inicio rápido, usa Azure App Configuration para centralizar el almacenamiento y la administración de la configuración de aplicaciones mediante la biblioteca cliente del proveedor JavaScript de App Configuration.
El proveedor de App Configuration para JavaScript se basa en el SDK de Azure para JavaScript y está diseñado para que sea más fácil de usar con características más enriquecidas.
Permite el acceso a los valores clave en App Configuration como un objeto Map
.
Ofrece características como la composición de configuración a partir de varias etiquetas, el recorte de prefijos clave, la resolución automática de referencias de Key Vault y muchas más.
Por ejemplo, en este tutorial se muestra cómo usar el proveedor de JavaScript en una aplicación Node.js.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. cree una de forma gratuita.
- Un almacén de App Configuration. Crear un almacén.
- Versiones de LTS de Node.js. Para más información sobre cómo instalar Node.js directamente en Windows o mediante Subsistema de Windows para Linux (WSL), consulte Introducción a Node.js.
Agregar pares de clave-valor
Agregue los siguientes pares de clave-valor al almacén de 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 | Tipo de contenido |
---|---|---|
message | Mensaje de Azure App Configuration | Dejar en blanco |
app.greeting | Hello World | Dejar en blanco |
app.json | {"myKey":"myValue"} | application/json |
Creación de una aplicación de consola de Node.js
En este tutorial, crea una aplicación de consola Node.js y cargará datos desde el almacén de App Configuration.
Cree un directorio para el proyecto denominado app-configuration-quickstart.
mkdir app-configuration-quickstart
Cambie al directorio recién creado app-configuration-quickstart.
cd app-configuration-quickstart
Instale el proveedor de Azure App Configuration mediante el comando
npm install
.npm install @azure/app-configuration-provider
Conexión a un almacén de App Configuration
En los siguientes ejemplos se muestra cómo recuperar datos de configuración de Azure App Configuration y usarlos en la aplicación.
De forma predeterminada, los valores de clave se cargan como un objeto Map
, lo que le permite acceder a cada clave-valor mediante su nombre de clave completo.
Sin embargo, si la aplicación usa objetos de configuración, puede usar la API auxiliar de constructConfigurationObject
que crea un objeto de configuración basado en los valores de clave cargados desde Azure App Configuration.
Cree un archivo denominado app.js en el directorio app-configuration-quickstart y copie el código de cada ejemplo.
Ejemplo 1: Carga de valores clave-clave con el selector predeterminado
En este ejemplo, se conecta a Azure App Configuration y carga los valores de clave sin especificar opciones avanzadas. De forma predeterminada, carga todos los valores de clave sin etiqueta. Puede conectarse al almacén de App Configuration mediante Microsoft Entra ID (recomendado) o una cadena de conexión.
Use DefaultAzureCredential
para autenticarse en el almacén de App Configuration. Siga las instrucciones para asignar la credencial al rol Lector de datos de App Configuration. Asegúrese de dejar tiempo suficiente para que el permiso se propague antes de ejecutar la aplicación.
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() {
console.log("Sample 1: Load key-values with default selector");
// Connect to Azure App Configuration using a token credential and load all key-values with null label.
const settings = await load(endpoint, credential);
console.log("---Consume configuration as a Map---");
// Find the key "message" and print its value.
console.log('settings.get("message"):', settings.get("message")); // settings.get("message"): Message from Azure App Configuration
// Find the key "app.greeting" and print its value.
console.log('settings.get("app.greeting"):', settings.get("app.greeting")); // settings.get("app.greeting"): Hello World
// Find the key "app.json" whose value is an object.
console.log('settings.get("app.json"):', settings.get("app.json")); // settings.get("app.json"): { myKey: 'myValue' }
console.log("---Consume configuration as an object---");
// Construct configuration object from loaded key-values, by default "." is used to separate hierarchical keys.
const config = settings.constructConfigurationObject();
// Use dot-notation to access configuration
console.log("config.message:", config.message); // config.message: Message from Azure App Configuration
console.log("config.app.greeting:", config.app.greeting); // config.app.greeting: Hello World
console.log("config.app.json:", config.app.json); // config.app.json: { myKey: 'myValue' }
}
run().catch(console.error);
Ejemplo 2: Carga de valores clave-clave específicos mediante selectores
En este ejemplo, se carga un subconjunto de valores de clave especificando la opción selectors
.
Solo se cargan las claves que empiezan por "app".
Tenga en cuenta que puede especificar varios selectores en función de sus necesidades, cada uno con propiedades keyFilter
y labelFilter
.
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() {
console.log("Sample 2: Load specific key-values using selectors");
// Load a subset of keys starting with "app." prefix.
const settings = await load(endpoint, credential, {
selectors: [{
keyFilter: "app.*"
}],
});
console.log("---Consume configuration as a Map---");
// The key "message" is not loaded as it does not start with "app."
console.log('settings.has("message"):', settings.has("message")); // settings.has("message"): false
// The key "app.greeting" is loaded
console.log('settings.has("app.greeting"):', settings.has("app.greeting")); // settings.has("app.greeting"): true
// The key "app.json" is loaded
console.log('settings.has("app.json"):', settings.has("app.json")); // settings.has("app.json"): true
console.log("---Consume configuration as an object---");
// Construct configuration object from loaded key-values
const config = settings.constructConfigurationObject({ separator: "." });
// Use dot-notation to access configuration
console.log("config.message:", config.message); // config.message: undefined
console.log("config.app.greeting:", config.app.greeting); // config.app.greeting: Hello World
console.log("config.app.json:", config.app.json); // config.app.json: { myKey: 'myValue' }
}
run().catch(console.error);
Ejemplo 3: Carga de valores clave-valor y prefijo de recorte de claves
En este ejemplo, se cargan los valores de clave con una opción trimKeyPrefixes
.
Una vez cargados los valores de clave, el prefijo "app" se recorta de todas las claves.
Esto resulta útil cuando desea cargar configuraciones específicas de la aplicación mediante el filtrado a un prefijo de clave determinado, pero no quiere que el código lleve el prefijo cada vez que tenga acceso a la configuración.
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() {
console.log("Sample 3: Load key-values and trim prefix from keys");
// Load all key-values with no label, and trim "app." prefix from all keys.
const settings = await load(endpoint, credential, {
selectors: [{
keyFilter: "app.*"
}],
trimKeyPrefixes: ["app."]
});
console.log("---Consume configuration as a Map---");
// The original key "app.greeting" is trimmed as "greeting".
console.log('settings.get("greeting"):', settings.get("greeting")); // settings.get("greeting"): Hello World
// The original key "app.json" is trimmed as "json".
console.log('settings.get("json"):', settings.get("json")); // settings.get("json"): { myKey: 'myValue' }
console.log("---Consume configuration as an object---");
// Construct configuration object from loaded key-values with trimmed keys.
const config = settings.constructConfigurationObject();
// Use dot-notation to access configuration
console.log("config.greeting:", config.greeting); // config.greeting: Hello World
console.log("config.json:", config.json); // config.json: { myKey: 'myValue' }
}
run()
Ejecución de la aplicación
Establezca la variable de entorno .
Establezca la variable de entorno denominada AZURE_APPCONFIG_ENDPOINT en el punto de conexión del almacén de App Configuration que se encuentra en la Información general del almacén en Azure Portal.
Si usa el símbolo del sistema de Windows, ejecute el siguiente comando y reinícielo para que se aplique el cambio:
setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
Si usa PowerShell, ejecute el siguiente comando:
$Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
Si usa macOS o Linux, ejecute el siguiente comando:
export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
Una vez establecida correctamente la variable de entorno, ejecute el siguiente comando para ejecutar la aplicación localmente:
node app.js
Debería ver la siguiente salida para cada ejemplo:
Ejemplo 1
Sample 1: Load key-values with default selector ---Consume configuration as a Map--- settings.get("message"): Message from Azure App Configuration settings.get("app.greeting"): Hello World settings.get("app.json"): { myKey: 'myValue' } ---Consume configuration as an object--- config.message: Message from Azure App Configuration config.app.greeting: Hello World config.app.json: { myKey: 'myValue' }
Ejemplo 2
Sample 2: Load specific key-values using selectors ---Consume configuration as a Map--- settings.has("message"): false settings.has("app.greeting"): true settings.has("app.json"): true ---Consume configuration as an object--- config.message: undefined config.app.greeting: Hello World config.app.json: { myKey: 'myValue' }
Ejemplo 3
Sample 3: Load key-values and trim prefix from keys ---Consume configuration as a Map--- settings.get("greeting"): Hello World settings.get("json"): { myKey: 'myValue' } ---Consume configuration as an object--- config.greeting: Hello World config.json: { myKey: 'myValue' }
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.
- Inicie sesión en Azure Portal y después seleccione Grupos de recursos.
- En el cuadro de texto Filtrar por nombre, escriba el nombre del grupo de recursos.
- En la lista resultados, seleccione el nombre del grupo de recursos para ver la información general.
- Seleccione Eliminar grupo de recursos.
- 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 inicio rápido, ha creado un almacén de App Configuration y ha aprendido a acceder a los valores clave mediante el proveedor de JavaScript de App Configuration en una aplicación Node.js. Para obtener información sobre cómo configurar la aplicación para actualizar dinámicamente las opciones de configuración, continúe con el siguiente tutorial.