Partilhar via


Tutorial: Usar a configuração dinâmica em um aplicativo do Azure Functions

Este tutorial mostra como você pode habilitar atualizações de configuração dinâmica em seu aplicativo Azure Functions. Ele baseia-se na aplicação Azure Functions introduzida nos primeiros passos. Antes de continuar, conclua primeiro a criação de uma aplicação do Azure Functions com a Configuração de Aplicações do Azure.

Neste tutorial, aprenderás como:

  • Configure a atualização de configuração dinâmica para seu aplicativo Azure Functions.
  • Habilite a atualização automática da configuração usando o middleware de Configuração do Aplicativo.
  • Use a configuração mais recente nas "Chamadas de função" quando ocorrerem alterações no seu repositório de configuração de aplicativos.

Pré-requisitos

Recarregar dados da Configuração do Aplicativo

O provedor .NET de Configuração de Aplicativo do Azure dá suporte ao cache e à atualização dinâmica de definições de configuração com base na atividade do aplicativo. Nesta seção, você configura o provedor para atualizar as configurações dinamicamente e habilitar a atualização automática da configuração usando o middleware de Configuração do Aplicativo, Microsoft.Azure.AppConfiguration.Functions.Workersempre que uma função é executada.

Observação

A Configuração de Aplicativo do Azure pode ser usada com o Azure Functions no modelo de trabalho isolado ou no modelo em processo. Este tutorial usa o modelo de trabalhador isolado como exemplo. Você pode encontrar exemplos de código completos para ambos os modelos no repositório GitHub de Configuração de Aplicativo do Azure.

  1. Abra o ficheiro Program.cs e atualize a chamada para incluir o método AddAzureAppConfiguration. Esse método define as condições para atualizar as definições de configuração, incluindo a especificação das chaves a serem monitoradas e o intervalo entre as verificações de atualização.

    // Connect to Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        Uri endpoint = new(Environment.GetEnvironmentVariable("AZURE_APPCONFIG_ENDPOINT") ?? 
            throw new InvalidOperationException("The environment variable 'AZURE_APPCONFIG_ENDPOINT' is not set or is empty."));
        options.Connect(endpoint, new DefaultAzureCredential())
               // Load all keys that start with `TestApp:` and have no label
               .Select("TestApp:*")
               // Reload configuration if any selected key-values have changed.
               // Use the default refresh interval of 30 seconds. It can be overridden via AzureAppConfigurationRefreshOptions.SetRefreshInterval.
               .ConfigureRefresh(refreshOptions =>
               {
                   refreshOptions.RegisterAll();
               });
    });
    

    Você chama o RegisterAll método para instruir o provedor de Configuração de Aplicativo a recarregar toda a configuração sempre que detetar uma alteração em qualquer um dos valores-chave selecionados (aqueles que começam com TestApp: e não têm rótulo). Para obter mais informações sobre como monitorar alterações de configuração, consulte Práticas recomendadas para atualização de configuração.

    Por padrão, o intervalo de atualização é definido como 30 segundos. Você pode personalizar esse intervalo chamando o AzureAppConfigurationRefreshOptions.SetRefreshInterval método.

  2. Atualize o arquivo Program.cs para habilitar a atualização automática da configuração em cada execução de função, adicionando o middleware de Configuração do Aplicativo:

    // Connect to Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        // Omitted the code added in the previous step.
    });
    
    // Add Azure App Configuration middleware to the service collection.
    builder.Services.AddAzureAppConfiguration()
    
    // Use Azure App Configuration middleware for dynamic configuration refresh.
    builder.UseAzureAppConfiguration();
    
    builder.ConfigureFunctionsWebApplication();
    
    builder.Build().Run();
    

Testar localmente a função

  1. Defina a variável de ambiente .

    Defina a variável de ambiente chamada AZURE_APPCONFIG_ENDPOINT para o ponto de extremidade da sua loja de Configuração de Aplicativos encontrado em Visão geral da sua loja no portal do Azure.

    Se você usar o prompt de comando do Windows, execute o seguinte comando e reinicie o prompt de comando para permitir que a alteração entre em vigor:

    setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
    

    Se você usar o PowerShell, execute o seguinte comando:

    $Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
    

    Se você usa macOS ou Linux, execute o seguinte comando:

    export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
    
  2. Para testar a sua função, prima F5. Se solicitado, aceite a solicitação do Visual Studio para baixar e instalar as ferramentas CLI (Azure Functions Core). Também pode ser necessário habilitar uma exceção de firewall para que as ferramentas possam lidar com solicitações HTTP.

  3. Copie o URL da sua função na saída do runtime do Azure Functions.

    Depuração de função de início rápido no VS

  4. Cole o URL do pedido HTTP na barra de endereço do browser. A imagem a seguir mostra a resposta no navegador para a solicitação GET local retornada pela função.

    Lançamento local da Função de Início Rápido

  5. Selecione seu repositório de Configuração de Aplicativo no portal do Azure e atualize o valor da seguinte chave no Gerenciador de configurações.

    Chave Valor
    TestApp:Configurações:Mensagem Dados da Configuração do Aplicativo do Azure - Atualizado
  6. Atualize o navegador algumas vezes. Depois que o intervalo de atualização padrão de 30 segundos passar, a página exibirá o valor atualizado recuperado do seu aplicativo Azure Functions.

    Função de início rápido para atualizar definições locais

Limpeza de 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 Azure Functions para atualizar dinamicamente as definições de configuração da Configuração do aplicativo.

Para saber como usar sinalizadores de recursos da Configuração de Aplicativo do Azure em seu aplicativo Azure Functions, prossiga para o tutorial a seguir.

Para saber como usar uma identidade gerenciada do Azure para simplificar o acesso à Configuração do Aplicativo, continue para o tutorial a seguir.