Compartilhar via


Tutorial: Usar a configuração dinâmica no JavaScript

Neste tutorial, você aprenderá como habilitar a configuração dinâmica nos 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 de Aplicativos do Azure.

Pré-requisitos

Adicionar valores-chave

Adicione os seguintes valores-chave ao repositório da Configuração de Aplicativos do Azure. Para mais informações sobre como adicionar valores-chave a um repositório usando o portal do Azure ou a CLI, acesse Criar um valor-chave.

Chave Valor Rótulo Tipo de conteúdo
message Olá, Mundo! Deixar em branco Deixar em branco
sentinel 1 Deixar em branco Deixar em branco

Observação

A 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 é detectada, o aplicativo atualiza todos os valores de configuração. Essa abordagem ajuda a garantir a consistência da configuração no aplicativo e reduz o número geral de solicitações feitas ao repositório de Configuração de Aplicativos do Azure em comparação ao monitoramento de todas as chaves quanto a alterações.

Recarregar os dados da Configuração de 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 de Aplicativos, como um Map ou um objeto de configuração.

Você pode se conectar à Configuração de Aplicativos do Azure usando o Microsoft Entra ID (recomendado) ou uma cadeia de conexão. O trecho de código a seguir demonstra o uso do Microsoft Entra ID. Use o DefaultAzureCredential para autenticar no seu repositório de Configuração de Aplicativos do Azure. Ao concluir o início rápido listado nos pré-requisitos, você já atribuiu à sua credencial a função Leitor de dados de Configuração de Aplicativos do Azure.

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

    // Connecting to Azure App Configuration using endpoint and token credential
    const settings = await load(endpoint, credential, {
        // 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 própria configuração de refreshOptions não atualizará automaticamente a configuração. Você precisa chamar o método refresh para disparar uma atualização. Esse design impede solicitações desnecessárias para a Configuração de Aplicativos quando o aplicativo está ocioso. Você deve incluir a chamada refresh onde ocorre a atividade do aplicativo. Isso é conhecido como atualização de configuração controlada por atividade. Por exemplo, você pode chamar refresh ao processar uma mensagem de entrada ou um pedido ou dentro de uma iteração na qual que você executa uma tarefa complexa. Como alternativa, você poderá usar um temporizador se o aplicativo estiver sempre ativo. Nesse exemplo, refresh é chamado em um loop para fins de demonstração. Mesmo que a chamada refresh falhe por algum motivo, seu aplicativo continuará usando a configuração armazenada em cache. Outra tentativa será feita quando o intervalo de atualização configurado tiver passado e a chamada refresh for disparada pela atividade do aplicativo. Chamar refresh é uma não operação antes que o intervalo de atualização configurado decorra, portanto, seu impacto no desempenho é mínimo, mesmo se essa chamada é realizada com frequência.

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

    // 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 arquivo app.js deve ser semelhante ao seguinte snippet de código:

    const sleepInMs = require("util").promisify(setTimeout);
    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() {
        // Connecting to Azure App Configuration using endpoint and token credential
        const settings = await load(endpoint, credential, {
            // 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 o aplicativo

  1. Executar o script:

    node app.js
    
  2. Verificar a saída:

    Hello World!
    

    Ele continua a imprimir "Olá, Mundo!" em uma nova linha a cada 5 segundos.

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

    Chave Valor Rótulo Tipo de conteúdo
    message Olá, Mundo – Atualizado! Deixar em branco Deixar em branco
    sentinel 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!
    

Limpar os recursos

Se não deseja continuar usando os recursos criados neste artigo, exclua o grupo de recursos que você criou aqui para evitar encargos.

Importante

A exclusão de um grupo de recursos é irreversível. O grupo de recursos e todos os recursos contidos nele são excluídos permanentemente. Não exclua acidentalmente grupo de recursos ou recursos incorretos. Se tiver criado os recursos para este artigo dentro de um grupo de recursos que contém outros recursos que você deseja manter, exclua cada um individualmente do respectivo 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..., digite o nome do seu grupo de recursos.
  3. Na lista de resultados, selecione o nome do grupo de recursos para conferir uma visão geral.
  4. Selecione Excluir grupo de recursos.
  5. Você receberá uma solicitação para confirmar a exclusão do grupo de recursos. Insira o nome do grupo de recursos para confirmar e selecione Excluir.

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

Próximas etapas

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