Share via


Hızlı Başlangıç: Azure Uygulaması Yapılandırması ile JavaScript uygulaması oluşturma

Bu hızlı başlangıçta, Azure Uygulaması Yapılandırması JavaScript sağlayıcı istemci kitaplığını kullanarak uygulama ayarlarının depolamasını ve yönetimini merkezileştirmek için Azure Uygulaması Yapılandırması'nı kullanacaksınız.

JavaScript için Uygulama Yapılandırması sağlayıcısı,JavaScript için Azure SDK ve daha zengin özelliklerle kullanımı daha kolay olacak şekilde tasarlanmıştır. nesne olarak Map Uygulama Yapılandırması anahtar değerlerine erişim sağlar. Birden çok etiketten yapılandırma bileşimi, anahtar ön eki kırpma, Key Vault başvurularının otomatik çözünürlüğü ve daha birçok özellik sunar. Örnek olarak, bu öğreticide JavaScript sağlayıcısının bir Node.js uygulamasında nasıl kullanılacağı gösterilmektedir.

Önkoşullar

  • Etkin aboneliği olan bir Azure hesabı. Ücretsiz bir tane oluşturun.
  • bir Uygulama Yapılandırması mağazası. Mağaza oluşturma.
  • Node.js LTS sürümleri. Node.js doğrudan Windows'a yükleme veya Linux için Windows Alt Sistemi (WSL) kullanma hakkında bilgi için bkz. Node.js kullanmaya başlama

Anahtar-değer ekleme

Uygulama Yapılandırması deposuna aşağıdaki anahtar değerlerini ekleyin. Azure portalını veya CLI'yı kullanarak bir depoya anahtar-değer ekleme hakkında daha fazla bilgi için Anahtar-değer oluşturma bölümüne gidin.

Anahtar Değer İçerik türü
ileti Azure Uygulaması Yapılandırmasından gelen ileti Boş bırakın
app.greeting Hello World Boş bırakın
app.json {"myKey":"myValue"} application/json

Node.js konsol uygulaması oluşturma

Bu öğreticide bir Node.js konsol uygulaması oluşturacak ve Uygulama Yapılandırması deponuzdan veri yükleyebilirsiniz.

  1. Proje için app-configuration-quickstart adlı yeni bir dizin oluşturun.

    mkdir app-configuration-quickstart
    
  2. Yeni oluşturulan app-configuration-quickstart dizinine geçin.

    cd app-configuration-quickstart
    
  3. komutunu kullanarak Azure Uygulaması Yapılandırma sağlayıcısını npm install yükleyin.

    npm install @azure/app-configuration-provider
    

Uygulama Yapılandırması mağazasına Bağlan

Aşağıdaki örneklerde yapılandırma verilerinin Azure Uygulaması Yapılandırmasından nasıl alınıp uygulamanızda nasıl kullanıldığı gösterilmektedir. Varsayılan olarak, anahtar-değerler bir Map nesne olarak yüklenir ve her anahtar-değere tam anahtar adını kullanarak erişmenizi sağlar. Ancak, uygulamanız yapılandırma nesneleri kullanıyorsa, Azure Uygulaması Yapılandırması'ndan yüklenen anahtar değerlerini temel alan bir yapılandırma nesnesi oluşturan yardımcı API'yi kullanabilirsinizconstructConfigurationObject.

app-configuration-quickstart dizininde app.js adlı bir dosya oluşturun ve kodu her örnekten kopyalayın.

Örnek 1: Varsayılan seçici ile anahtar-değerleri yükleme

Bu örnekte, bağlantı dizesi kullanarak Azure Uygulaması Yapılandırmasına bağlanır ve gelişmiş seçenekler belirtmeden anahtar-değerleri yüklersiniz. Varsayılan olarak, etiketsiz tüm anahtar değerlerini yükler.

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

Örnek 2: Seçicileri kullanarak belirli anahtar değerlerini yükleme

Bu örnekte, seçeneğini belirterek selectors anahtar değerlerinin bir alt kümesini yüklersiniz. Yalnızca "uygulama" ile başlayan anahtarlar yüklenir. Gereksinimlerinize göre ve özelliklerine keyFilterlabelFilter sahip birden çok seçici belirtebileceğinizi unutmayın.

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

Örnek 3: Anahtar değerlerini yükleme ve anahtarlardan ön eki kırpma

Bu örnekte, anahtar değerlerini seçeneğiyle trimKeyPrefixesyüklersiniz. Anahtar-değerler yüklendikten sonra, "uygulama" ön eki tüm anahtarlardan kırpılır. Bu, belirli bir anahtar ön ekini filtreleyerek uygulamanıza özgü yapılandırmaları yüklemek istediğinizde yararlıdır, ancak yapılandırmaya her eriştiğinde kodunuzun ön ekini taşımasını istemezsiniz.

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

Uygulamayı çalıştırma

  1. AZURE_APPCONFIG_CONNECTION_STRING adlı bir ortam değişkeni ayarlayın ve bunu Uygulama Yapılandırması deponuzun bağlantı dizesi olarak ayarlayın. Komut satırında aşağıdaki komutu çalıştırın:

    Uygulamayı Windows komut istemini kullanarak yerel olarak çalıştırmak için aşağıdaki komutu çalıştırın ve öğesini uygulama yapılandırma deponuzun bağlantı dizesi ile değiştirin<app-configuration-store-connection-string>:

    setx AZURE_APPCONFIG_CONNECTION_STRING "<app-configuration-store-connection-string>"
    
  2. Aşağıdaki komutla ortam değişkeninin düzgün ayarlandığını doğrulamak için değerini yazdırın.

    Windows komut istemini kullanarak, değişikliğin etkili olması için komut istemini yeniden başlatın ve aşağıdaki komutu çalıştırın:

    echo %AZURE_APPCONFIG_CONNECTION_STRING%
    
  3. Ortam değişkeni düzgün şekilde ayarlandıktan sonra, uygulamayı yerel olarak çalıştırmak için aşağıdaki komutu çalıştırın:

    node app.js
    

    Her örnek için aşağıdaki çıkışı görmeniz gerekir:

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

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

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

Kaynakları temizleme

Bu makalede oluşturulan kaynakları kullanmaya devam etmek istemiyorsanız ücretlerden kaçınmak için burada oluşturduğunuz kaynak grubunu silin.

Önemli

Silinen kaynak grupları geri alınamaz. Kaynak grubu ve içindeki tüm kaynaklar kalıcı olarak silinir. Yanlış kaynak grubunu veya kaynakları yanlışlıkla silmediğinizden emin olun. Bu makalenin kaynaklarını, saklamak istediğiniz diğer kaynakları içeren bir kaynak grubu içinde oluşturduysanız, kaynak grubunu silmek yerine her kaynağı ilgili bölmeden tek tek silin.

  1. Azure portalında oturum açın ve Kaynak grupları'nı seçin.
  2. Ada göre filtrele kutusuna kaynak grubunuzun adını girin.
  3. Genel bir bakış görmek için sonuç listesinde kaynak grubu adını seçin.
  4. Kaynak grubunu sil'i seçin.
  5. Kaynak grubunun silinmesini onaylamanız istenir. Onaylamak için kaynak grubunuzun adını girin ve Sil'i seçin.

Birkaç dakika sonra kaynak grubu ve tüm kaynakları silinir.

Sonraki adımlar

Bu hızlı başlangıçta yeni bir Uygulama Yapılandırması deposu oluşturdunuz ve Node.js bir uygulamada Uygulama Yapılandırması JavaScript sağlayıcısını kullanarak anahtar-değerlere erişmeyi öğrendiniz.

Daha fazla kod örneği için şu adresi ziyaret edin: