Partilhar via


Guia de início rápido: adicionar sinalizadores de recursos a um aplicativo do Azure Functions

Neste início rápido, você cria um aplicativo do Azure Functions e usa sinalizadores de recursos nele. Você usa o gerenciamento de recursos da Configuração de Aplicativo do Azure para armazenar centralmente todos os seus sinalizadores de recursos e controlar seus estados.

Pré-requisitos

Adicionar um sinalizador de recurso

Adicione um sinalizador de recurso chamado Beta à loja de Configuração do Aplicativo e deixe Rótulo e Descrição com seus valores padrão. Para obter mais informações sobre como adicionar sinalizadores de recursos a uma loja usando o portal do Azure ou a CLI, vá para Criar um sinalizador de recurso.

Ativar sinalizador de recurso chamado Beta

Criar um aplicativo de função

Crie um aplicativo do Azure Functions usando o Visual Studio selecionando o modelo do Azure Functions (C# ). Este modelo orienta você na definição de configurações essenciais para seu projeto. Para obter instruções detalhadas, consulte Desenvolver funções do Azure usando o Visual Studio.

Use a tabela a seguir como referência para parâmetros-chave ao criar seu aplicativo de função.

Configurações Valor
Trabalhador de funções .NET 8.0 em implementação isolada
Função Acionador HTTP
Nível de autorização Anônimo

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 guia de início rápido 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.

Conectar-se a uma loja de configuração de aplicativos

Você pode se conectar à sua loja de Configuração de Aplicativos usando a ID do Microsoft Entra (recomendado) ou uma cadeia de conexão.

  1. Clique com o botão direito do mouse em seu projeto e selecione Gerenciar pacotes NuGet. Na guia Procurar , procure e adicione a versão estável mais recente dos seguintes pacotes NuGet ao seu projeto.

    • Microsoft.Azure.AppConfiguration.Functions.Worker
    • Microsoft.FeatureManagement
    • Azure.Identity
  2. Abra Program.cs e atualize o código da seguinte maneira. Você adiciona a Configuração do Aplicativo do Azure como uma fonte de configuração extra chamando o AddAzureAppConfiguration método.

    Você usa o DefaultAzureCredential para autenticar na sua loja de configuração de aplicativos. Siga as instruções para atribuir à sua credencial a função de Leitor de Dados de Configuração do Aplicativo. Certifique-se de dar tempo suficiente para que a permissão se propague antes de executar seu aplicativo.

    using Azure.Identity;
    using Microsoft.Azure.Functions.Worker.Builder;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Hosting;
    using Microsoft.FeatureManagement;
    
    var builder = FunctionsApplication.CreateBuilder(args);
    
    // 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 feature flags with no label. To load feature flags with specific keys and labels, set via FeatureFlagOptions.Select.
               // Use the default refresh interval of 30 seconds. It can be overridden via FeatureFlagOptions.SetRefreshInterval.
               .UseFeatureFlags();
    });
    

    O UseFeatureFlags() método instrui o provedor a carregar flags de funcionalidade. Por padrão, todos os sinalizadores de recursos sem rótulos são carregados e atualizados a cada 30 segundos. A seleção e o comportamento de atualização dos sinalizadores de recursos são configurados independentemente de outros valores de chave de configuração. Você pode personalizar esses comportamentos passando uma FeatureFlagOptions ação para o UseFeatureFlags método. Use FeatureFlagOptions.Select para especificar as teclas e rótulos dos sinalizadores de recursos a serem carregados e use FeatureFlagOptions.SetRefreshInterval para substituir o intervalo de atualização padrão.

    Sugestão

    Se você não quiser que nenhuma configuração além de sinalizadores de recursos seja carregada em seu aplicativo, você pode ligar options.Select("_") para carregar apenas uma chave "_"fictícia inexistente. Por padrão, todos os valores de chave de configuração sem rótulos em sua loja de configuração de aplicativos serão carregados se nenhum Select método for chamado.

  3. Atualize o arquivo Program.cs para habilitar a atualização automática de flags de funcionalidade em cada execução de função, adicionando o middleware de Configuração de Aplicativo do Azure. Você também registra o serviço de gerenciamento de recursos, permitindo que você injete e use-o em seu código de função mais tarde.

    // Connect to Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        // Omitted the code added in the previous step.
    });
    
    // Add Azure App Configuration middleware and feature management to the service collection.
    builder.Services
        .AddAzureAppConfiguration()
        .AddFeatureManagement();
    
    // Use Azure App Configuration middleware for dynamic configuration and feature flag refresh.
    builder.UseAzureAppConfiguration();
    
    builder.ConfigureFunctionsWebApplication();
    
    builder.Build().Run();
    
  4. Abra Function1.cs e adicione o namespace a seguir.

    using Microsoft.FeatureManagement;
    

    Atualize o construtor para obter uma instância de IVariantFeatureManagerSnapshot através de injeção de dependência.

    private readonly IVariantFeatureManagerSnapshot _featureManager;
    private readonly ILogger<Function1> _logger;
    
    public Function1(IVariantFeatureManagerSnapshot featureManager, ILogger<Function1> logger)
    {
        _featureManager = featureManager;
        _logger = logger;
    }
    
  5. Atualize o Run método para retornar uma mensagem de resposta com base no estado do sinalizador de recurso.

    [Function("Function1")]
    public async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req)
    {
        _logger.LogInformation("C# HTTP trigger function processed a request.");
    
        // Read feature flag
        string featureName = "Beta";
        bool featureEnabled = await _featureManager.IsEnabledAsync(featureName, req.HttpContext.RequestAborted);
    
        return new OkObjectResult(featureEnabled
            ? $"The Feature Flag '{featureName}' is turned ON!"
            : $"The Feature Flag '{featureName}' is turned OFF");
    }
    

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. Pressione F5 para testar sua função. 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 indicando que o sinalizador de recurso Beta está desativado.

    Sinalizador de recurso de função de início rápido desativado

  5. No portal do Azure, navegue até sua loja de Configuração de Aplicativos. Em Operações, selecione Gerenciador de recursos, localize o sinalizador de recurso Beta e defina o botão Ativado como Ativado.

  6. Atualize o navegador algumas vezes. Quando a janela de tempo do intervalo de atualização passa, a página muda para indicar que o sinalizador de recurso Beta está ativado, conforme mostrado na imagem.

    Sinalizador de recurso de função de início rápido ativado

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 início rápido, você criou um sinalizador de recurso e o usou com um aplicativo do Azure Functions.

Para obter o resumo completo dos recursos da biblioteca de gerenciamento de recursos do .NET, continue para o documento a seguir.

Para saber mais sobre como gerenciar sinalizadores de recursos na Configuração do Aplicativo do Azure, continue para o tutorial a seguir.