Partilhar via


Tutorial: Usar configuração dinâmica em JavaScript

Neste tutorial, você aprenderá a habilitar a configuração dinâmica em seus aplicativos JavaScript. O exemplo neste tutorial baseia-se no aplicativo de exemplo introduzido no início rápido do JavaScript. Antes de continuar, conclua Criar um aplicativo JavaScript com a Configuração do Aplicativo do Azure.

Pré-requisitos

Adicionar valores-chave

Adicione o seguinte valor-chave à sua loja de Configuração de Aplicações do Azure. Para obter mais informações sobre como adicionar valores-chave a uma loja usando o portal do Azure ou a CLI, vá para Criar um valor-chave.

Key valor Etiqueta Tipo do conteúdo
mensagem Olá, mundo! Deixar em branco Deixar em branco
sentinela 1 Deixar em branco Deixar em branco

Nota

Uma chave sentinela é uma chave que você atualiza depois de concluir a alteração de todas as outras chaves. Seu aplicativo monitora a chave sentinela. Quando uma alteração é detetada, seu aplicativo atualiza todos os valores de configuração. Essa abordagem ajuda a garantir a consistência da configuração em seu aplicativo e reduz o número geral de solicitações feitas à sua loja de Configuração de Aplicativo do Azure, em comparação com o monitoramento de todas as chaves para alterações.

Recarregar dados da Configuração do Aplicativo

Os exemplos a seguir mostram como usar valores de configuração atualizáveis em aplicativos de console. Escolha as instruções a seguir com base em como seu aplicativo consome dados de configuração carregados da Configuração do aplicativo, como um Map objeto de configuração ou de configuração.

  1. Abra o arquivo app.js e atualize a load função. Adicione um refreshOptions parâmetro para habilitar as opções de atualização e configuração. A configuração carregada será atualizada quando uma alteração for detetada no servidor. Por padrão, um intervalo de atualização de 30 segundos é usado, mas você pode substituí-lo pela refreshIntervalInMs propriedade.

    // Connecting to Azure App Configuration using connection string
    const settings = await load(connectionString, {
        // 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. A configuração refreshOptions sozinha não atualizará automaticamente a configuração. Você precisa chamar o refresh método para disparar uma atualização. Esse design evita solicitações desnecessárias à Configuração do Aplicativo quando seu aplicativo está ocioso. Você deve incluir a chamada onde a atividade do refresh aplicativo ocorre. Isso é conhecido como atualização de configuração orientada por atividade. Por exemplo, você pode ligar refresh ao processar uma mensagem de entrada ou um pedido, ou dentro de uma iteração onde você executa uma tarefa complexa. Como alternativa, você pode usar um temporizador se seu aplicativo estiver sempre ativo. Neste exemplo, refresh é chamado em um loop para fins de demonstração. Mesmo que a refresh chamada falhe por qualquer motivo, seu aplicativo continuará a usar a configuração em cache. Outra tentativa será feita quando o intervalo de atualização configurado tiver passado e a chamada for acionada pela atividade do refresh aplicativo. A chamada refresh é um no-op antes do intervalo de atualização configurado passar, portanto, seu impacto no desempenho é mínimo, mesmo que seja chamado com frequência.

    Adicione o código a seguir para sondar as alterações de configuração dos valores-chave monitorados.

    // 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. Agora, o app.js do arquivo deve se parecer com o seguinte trecho de código:

    const sleepInMs = require("util").promisify(setTimeout);
    const { load } = require("@azure/app-configuration-provider");
    const connectionString = process.env.AZURE_APPCONFIG_CONNECTION_STRING;
    
    async function run() {
        // Connecting to Azure App Configuration using connection string
        const settings = await load(connectionString, {
            // 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);
    

Executar a aplicação

  1. Execute o script:

    node app.js
    
  2. Verificar saída:

    Hello World!
    

    Continua a imprimir "Hello World!" numa nova linha a cada 5 segundos.

  3. Atualize os seguintes valores-chave para o repositório de Configuração de Aplicativos do Azure. Atualize o valor da chave message primeiro e, em seguida, sentinel.

    Key valor Etiqueta Tipo do conteúdo
    mensagem Hello World - Atualizado! Deixar em branco Deixar em branco
    sentinela 2 Deixar em branco Deixar em branco
  4. Depois que os valores são atualizados, o valor atualizado é impresso após o intervalo de atualização.

    Hello World - Updated!
    

Clean up resources (Limpar recursos)

Se não quiser continuar a utilizar os recursos criados neste artigo, elimine o grupo de recursos que criou aqui para evitar cobranças.

Importante

A eliminação de um grupo de recursos é irreversível. O grupo de recursos e todos os recursos nele contidos são excluídos permanentemente. Certifique-se de não excluir acidentalmente o grupo de recursos ou recursos errados. Se você criou os recursos para este artigo dentro de um grupo de recursos que contém outros recursos que deseja manter, exclua cada recurso individualmente de seu respetivo painel em vez de excluir o grupo de recursos.

  1. Entre no portal do Azure e selecione Grupos de recursos.
  2. Na caixa Filtrar por nome, introduza o nome do seu grupo de recursos.
  3. Na lista de resultados, selecione o nome do grupo de recursos para ver uma visão geral.
  4. Selecione Eliminar grupo de recursos.
  5. É-lhe pedido que confirme a eliminação do grupo de recursos. Insira o nome do grupo de recursos a ser confirmado e selecione Excluir.

Após alguns momentos, o grupo de recursos e todos os seus recursos são excluídos.

Próximos passos

Neste tutorial, você habilitou seu aplicativo JavaScript para atualizar dinamicamente as definições de configuração da Configuração do Aplicativo do Azure. Para saber como usar uma identidade gerenciada do Azure para simplificar o acesso à Configuração do Aplicativo do Azure, continue para o próximo tutorial.