Краткое руководство. Создание консольного приложения Node.js с помощью Конфигурация приложений Azure
В этом кратком руководстве вы используете Конфигурация приложений Azure для централизованного хранения и управления параметрами приложения с помощью клиентской библиотеки поставщика JavaScript Конфигурация приложений Azure.
поставщик Конфигурация приложений для JavaScript построен на основе Пакет SDK Azure для JavaScript и предназначен для упрощения использования с более широкими возможностями.
Он обеспечивает доступ к значениям ключей в Конфигурация приложений в качестве Map
объекта.
Он предлагает такие функции, как композиция конфигурации из нескольких меток, обрезка ключа, автоматическое разрешение ссылок Key Vault и многое другое.
В этом руководстве показано, как использовать поставщик JavaScript в приложении Node.js.
Необходимые компоненты
- Учетная запись Azure с активной подпиской. Создайте ее бесплатно.
- Хранилище Конфигурация приложений. Создайте хранилище.
- LTS версии Node.js. Дополнительные сведения об установке Node.js непосредственно на Windows или с помощью подсистемы Windows для Linux см. в статье Приступая к работе с Node.js
Добавление ключевых значений
Добавьте следующие ключевые значения в хранилище Конфигурация приложений. Дополнительные сведения о добавлении значений ключей в хранилище с помощью портал Azure или ИНТЕРФЕЙСА командной строки см. в разделе "Создание значения ключа".
Ключ | Значение | Content type |
---|---|---|
message | Сообщение из Конфигурация приложений Azure | Оставьте пустым |
app.greeting | Hello World | Оставьте пустым |
app.json | {"myKey":"myValue"} | application/json |
Создание консольного приложения Node.js
В этом руководстве вы создадите консольное приложение Node.js и загрузите данные из хранилища Конфигурация приложений.
Создайте каталог для проекта с именем app-configuration-quickstart.
mkdir app-configuration-quickstart
Перейдите в созданный каталог app-configuration-quickstart.
cd app-configuration-quickstart
Установите поставщик Конфигурация приложений Azure с помощью
npm install
команды.npm install @azure/app-configuration-provider
Подключение к хранилищу Конфигурации приложений
В следующих примерах показано, как получить данные конфигурации из Конфигурация приложений Azure и использовать их в приложении.
По умолчанию ключ-значения загружаются в виде Map
объекта, что позволяет получить доступ к каждому значению ключа с помощью полного имени ключа.
Однако если приложение использует объекты конфигурации, можно использовать constructConfigurationObject
вспомогательный API, который создает объект конфигурации на основе значений ключей, загруженных из Конфигурация приложений Azure.
Создайте файл с именем app.js в каталоге app-configuration-quickstart и скопируйте код из каждого примера.
Пример 1. Загрузка значений ключей с помощью селектора по умолчанию
В этом примере вы подключаетесь к Конфигурация приложений Azure и загружаете значения ключей без указания дополнительных параметров. По умолчанию он загружает все значения ключей без метки. Вы можете подключиться к хранилищу Конфигурация приложений с помощью идентификатора Microsoft Entra (рекомендуется) или строка подключения.
Вы используете DefaultAzureCredential
для проверки подлинности в хранилище Конфигурация приложений. Следуйте инструкциям, чтобы назначить учетные данные роли чтения данных Конфигурация приложений. Перед запуском приложения обязательно предоставьте достаточно времени для распространения разрешения.
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);
Пример 2. Загрузка определенных значений ключей с помощью селекторов
В этом примере вы загружаете подмножество значений ключей, указав selectors
параметр.
Загружаются только ключи, начиная с "app".
Обратите внимание, что можно указать несколько селекторов в зависимости от ваших потребностей и keyFilter
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);
Пример 3. Загрузка значений ключей и префикса обрезки из ключей
В этом примере вы загружаете значения ключей с параметром trimKeyPrefixes
.
После загрузки значений ключей префикс "app" обрезается со всех ключей.
Это полезно при загрузке конфигураций, относящихся к приложению, путем фильтрации по определенному префиксу ключа, но вам не нужно, чтобы код выполнял префикс каждый раз, когда он обращается к конфигурации.
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()
Выполнение приложения
Установите переменную среды .
Задайте переменную среды с именем AZURE_APPCONFIG_ENDPOINT конечной точке хранилища Конфигурация приложений, найденной в разделе "Обзор хранилища" в портал Azure.
Если вы используете командную строку Windows, выполните следующую команду и перезапустите командную строку, чтобы изменения вступили в силу:
setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
Если вы используете PowerShell, выполните следующую команду:
$Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
Если вы используете macOS или Linux, выполните следующую команду:
export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
После правильного задания переменной среды выполните следующую команду, чтобы запустить приложение локально:
node app.js
Вы должны увидеть следующие выходные данные для каждого примера:
Пример 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' }
Пример 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' }
Пример 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' }
Очистка ресурсов
Если вы не планируете в дальнейшем использовать ресурсы, созданные при работе с этой статьей, удалите созданную группу ресурсов, чтобы избежать расходов.
Внимание
Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не те ресурсы или группу ресурсов. Если ресурсы для работы с этой статьей созданы в группе ресурсов, которая содержит другие нужные ресурсы, удалите каждый ресурс отдельно в соответствующей области ресурса, чтобы не удалять группу ресурсов.
- Войдите на портал Azure и выберитеГруппы ресурсов.
- Введите имя группы ресурсов в поле Фильтровать по имени.
- В списке результатов выберите имя группы ресурсов, чтобы просмотреть общие сведения.
- Выберите команду Удалить группу ресурсов.
- Подтвердите операцию удаления группы ресурсов. Введите имя группы ресурсов, которую необходимо удалить, и нажмите Удалить.
Через некоторое время группа ресурсов и все ее ресурсы будут удалены.
Следующие шаги
В этом кратком руководстве вы создали новое хранилище Конфигурация приложений и узнали, как получить доступ к значениям ключей с помощью поставщика javaScript Конфигурация приложений в приложении Node.js. Чтобы узнать, как настроить приложение для динамического обновления параметров конфигурации, перейдите к следующему руководству.