Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 Aplicativos do Azure para armazenar centralmente todos os sinalizadores de recursos e controlar seus estados.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie um gratuitamente.
- Um repositório de Configuração de Aplicativos, conforme mostrado no tutorial para criar um repositório.
- Visual Studio com o pacote de desenvolvimento do Azure.
Adicionar um sinalizador de recursos
Adicione um sinalizador de recursos chamado Beta ao repositório da Configuração de Aplicativos e deixe o Rótulo e a Descrição com seus valores padrão. Para mais informações sobre como adicionar sinalizadores de recursos a um repositório usando o portal do Azure ou a CLI, acesse Criar um sinalizador de recurso.
Criar um aplicativo de funções
Crie um aplicativo do Azure Functions usando o Visual Studio selecionando o modelo do Azure Functions (C# ). Este modelo orienta você na configuração de configurações essenciais para seu projeto. Para obter instruções detalhadas, consulte Desenvolver o Azure Functions usando o Visual Studio.
Use a tabela a seguir como referência para parâmetros de chave ao criar seu Aplicativo de Funções.
| Configuração | Valor |
|---|---|
| Trabalho do Functions | .NET 8.0 Isolado |
| Função | Gatilho 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 início rápido usa o modelo de trabalho isolado como exemplo. Você pode encontrar exemplos de código completos para ambos os modelos no repositório GitHub da Configuração de Aplicativos do Azure.
Conectar um repositório de Configuração de Aplicativos
Você pode se conectar ao seu armazenamento de configuração de aplicativo usando o Microsoft Entra ID (recomendado) ou uma cadeia de conexão.
Clique com o botão direito do mouse no projeto e selecione Gerenciar Pacotes do NuGet. Na guia Procurar, pesquise por e adicione a versão estável mais recente dos pacotes NuGet indicados ao seu projeto.
- Microsoft.Azure.AppConfiguration.Functions.Worker
- Microsoft.FeatureManagement
- Azure.Identity
Abra Program.cs e atualize o código da seguinte maneira. Adicione a Configuração de Aplicativos do Azure como uma fonte de configuração extra chamando o
AddAzureAppConfigurationmétodo.Use a autenticação
DefaultAzureCredentialno repositório da Configuração de Aplicativos. Siga as instruções para atribuir à credencial a função Leitor de Dados de Configuração de Aplicativo . Certifique-se de permitir tempo suficiente para a permissão se propagar 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 método
UseFeatureFlags()instrui o provedor a carregar sinalizadores de recursos. Por padrão, todos os sinalizadores de recursos sem rótulos são carregados e atualizados a cada 30 segundos. O comportamento de seleção e atualização de sinalizadores de recursos são configurados independentemente de outros valores-chave de configuração. Você pode personalizar esses comportamentos passando umaFeatureFlagOptionsação para oUseFeatureFlagsmétodo. UseFeatureFlagOptions.Selectpara especificar as chaves e os rótulos dos sinalizadores de recursos a serem carregados e useFeatureFlagOptions.SetRefreshIntervalpara substituir o intervalo de atualização padrão.Dica
Se você não quiser que nenhuma configuração diferente dos sinalizadores de recurso seja carregada em seu aplicativo, chame
options.Select("_")para carregar apenas uma chave fictícia não existente"_". Por padrão, todos os valores de chave de configuração sem rótulos no repositório de Configuração de Aplicativos serão carregados se nenhum métodoSelectfor chamado.Atualize o arquivo Program.cs para habilitar a atualização automática do sinalizador de recursos em cada execução de função adicionando o middleware da Configuração de Aplicativo do Azure. Você também registra o serviço de gerenciamento de funcionalidades, o que permite sua inserção e utilização no código de função posteriormente.
// 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();Abra Function1.cs e adicione o namespace a seguir.
using Microsoft.FeatureManagement;Atualize o construtor para obter uma instância de
IVariantFeatureManagerSnapshotpor meio da 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; }Atualize o
Runmé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 a função localmente
Defina a variável de ambiente.
Defina a variável de ambiente denominada AZURE_APPCONFIG_ENDPOINT para o ponto de extremidade do repositório de Configuração de Aplicativos encontrado na Visão Geral do seu repositório no portal do Azure.
Se você usar o prompt de comando do Windows, execute o comando a seguir 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 comando a seguir:
export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'Pressione F5 para testar sua função. Se solicitado, aceite a solicitação do Visual Studio para baixar e instalar as ferramentas principais (CLI) do Azure Functions. Além disso, talvez seja necessário habilitar uma exceção de firewall para que as ferramentas possam manipular solicitações HTTP.
Copie a URL da sua função da saída do Azure Functions runtime.
Cole a URL para a solicitação HTTP na barra de endereços do navegador. A imagem a seguir mostra a resposta, indicando que o sinalizador de recurso Beta está desabilitado.
No portal do Azure, navegue até o repositório de Configuração de Aplicativos. Em Operações, selecione Gerenciador de Recursos, localize o sinalizador de recurso Beta e defina a alternância Habilitada como Ativada.
Atualize o navegador algumas vezes. Quando a janela de tempo do intervalo de atualização acabar, a página será alterada para indicar que o sinalizador de recurso Beta está ativado, conforme mostrado na imagem.
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.
- Entre no portal do Azure e selecione Grupos de recursos.
- Na caixa Filtrar por nome..., digite o nome do seu grupo de recursos.
- Na lista de resultados, selecione o nome do grupo de recursos para conferir uma visão geral.
- Selecione Excluir grupo de recursos.
- 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 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 .NET, continue para o documento a seguir.
Para saber mais sobre como gerenciar sinalizadores de recursos na Configuração de Aplicativos do Azure, continue no tutorial a seguir.