Краткое руководство. Создание приложения JavaScript с помощью Конфигурации приложения Azure

В этом кратком руководстве вы используете Конфигурация приложений Azure для централизованного хранения и управления параметрами приложения с помощью клиентской библиотеки поставщика JavaScript Конфигурация приложений Azure.

поставщик Конфигурация приложений для JavaScript построен на основе Пакет SDK Azure для JavaScript и предназначен для упрощения использования с более широкими возможностями. Он обеспечивает доступ к значениям ключей в Конфигурация приложений в качестве Map объекта. Он предлагает такие функции, как композиция конфигурации из нескольких меток, обрезка ключа, автоматическое разрешение ссылок Key Vault и многое другое. В этом руководстве показано, как использовать поставщик JavaScript в приложении Node.js.

Необходимые компоненты

Добавление ключевых значений

Добавьте следующие ключевые значения в хранилище Конфигурация приложений. Дополнительные сведения о добавлении значений ключей в хранилище с помощью портал Azure или ИНТЕРФЕЙСА командной строки см. в разделе "Создание значения ключа".

Ключ Значение Content type
message Сообщение из Конфигурация приложений Azure Оставьте пустым
app.greeting Hello World Оставьте пустым
app.json {"myKey":"myValue"} application/json

Создание консольного приложения Node.js

В этом руководстве вы создадите консольное приложение Node.js и загрузите данные из хранилища Конфигурация приложений.

  1. Создайте каталог для проекта с именем app-configuration-quickstart.

    mkdir app-configuration-quickstart
    
  2. Перейдите в созданный каталог app-configuration-quickstart.

    cd app-configuration-quickstart
    
  3. Установите поставщик Конфигурация приложений Azure с помощью npm install команды.

    npm install @azure/app-configuration-provider
    

Подключение к хранилищу Конфигурации приложений

В следующих примерах показано, как получить данные конфигурации из Конфигурация приложений Azure и использовать их в приложении. По умолчанию ключ-значения загружаются в виде Map объекта, что позволяет получить доступ к каждому значению ключа с помощью полного имени ключа. Однако если приложение использует объекты конфигурации, можно использовать constructConfigurationObject вспомогательный API, который создает объект конфигурации на основе значений ключей, загруженных из Конфигурация приложений Azure.

Создайте файл с именем app.js в каталоге app-configuration-quickstart и скопируйте код из каждого примера.

Пример 1. Загрузка значений ключей с помощью селектора по умолчанию

В этом примере вы подключаетесь к Конфигурация приложений Azure с помощью строка подключения и загрузки значений ключей без указания дополнительных параметров. По умолчанию он загружает все значения ключей без метки.

const { load } = require("@azure/app-configuration-provider");
const connectionString = process.env.AZURE_APPCONFIG_CONNECTION_STRING;

async function run() {
    console.log("Sample 1: Load key-values with default selector");

    // Connect to Azure App Configuration using a connection string and load all key-values with null label.
    const settings = await load(connectionString);

    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". Обратите внимание, что можно указать несколько селекторов в зависимости от ваших потребностей и keyFilterlabelFilter свойств.

const { load } = require("@azure/app-configuration-provider");
const connectionString = process.env.AZURE_APPCONFIG_CONNECTION_STRING;

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(connectionString, {
        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.greeting);   // config.app.greeting: Hello World
    console.log("config.app.json:", config.json);           // config.app.json: { myKey: 'myValue' }
}

run().catch(console.error);

Пример 3. Загрузка значений ключей и префикса обрезки из ключей

В этом примере вы загружаете значения ключей с параметром trimKeyPrefixes. После загрузки значений ключей префикс "app" обрезается со всех ключей. Это полезно при загрузке конфигураций, относящихся к приложению, путем фильтрации по определенному префиксу ключа, но вам не нужно, чтобы код выполнял префикс каждый раз, когда он обращается к конфигурации.

const { load } = require("@azure/app-configuration-provider");
const connectionString = process.env.AZURE_APPCONFIG_CONNECTION_STRING;

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(connectionString, {
        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().catch(console.error);

Выполнение приложения

  1. Задайте переменную среды с именем AZURE_APPCONFIG_CONNECTION_STRING и задайте для нее строка подключения хранилища Конфигурация приложений. В командной строке выполните следующую команду:

    Чтобы запустить приложение локально с помощью командной строки Windows, выполните следующую команду и замените <app-configuration-store-connection-string> строка подключения хранилища конфигурации приложения:

    setx AZURE_APPCONFIG_CONNECTION_STRING "<app-configuration-store-connection-string>"
    
  2. Распечатайте значение переменной среды, чтобы убедиться, что она задана правильно с помощью следующей команды.

    С помощью командной строки Windows перезапустите командную строку, чтобы разрешить изменение вступило в силу и выполните следующую команду:

    echo %AZURE_APPCONFIG_CONNECTION_STRING%
    
  3. После правильного задания переменной среды выполните следующую команду, чтобы запустить приложение локально:

    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' }
    

Очистка ресурсов

Если вы не планируете в дальнейшем использовать ресурсы, созданные при работе с этой статьей, удалите созданную группу ресурсов, чтобы избежать расходов.

Внимание

Удаление группы ресурсов — процесс необратимый. Группа ресурсов и все содержащиеся в ней ресурсы удаляются без возможности восстановления. Будьте внимательны, чтобы случайно не удалить не те ресурсы или группу ресурсов. Если ресурсы для работы с этой статьей созданы в группе ресурсов, которая содержит другие нужные ресурсы, удалите каждый ресурс отдельно в соответствующей области ресурса, чтобы не удалять группу ресурсов.

  1. Войдите на портал Azure и выберитеГруппы ресурсов.
  2. Введите имя группы ресурсов в поле Фильтровать по имени.
  3. В списке результатов выберите имя группы ресурсов, чтобы просмотреть общие сведения.
  4. Выберите команду Удалить группу ресурсов.
  5. Подтвердите операцию удаления группы ресурсов. Введите имя группы ресурсов, которую необходимо удалить, и нажмите Удалить.

Через некоторое время группа ресурсов и все ее ресурсы будут удалены.

Следующие шаги

В этом кратком руководстве вы создали новое хранилище Конфигурация приложений и узнали, как получить доступ к значениям ключей с помощью поставщика javaScript Конфигурация приложений в приложении Node.js.

Дополнительные примеры кода см. в следующем разделе: