Compartilhar via


Início Rápido: Criar um aplicativo do Azure Functions com a Configuração de Aplicativos do Azure

Este início rápido mostra como centralizar e gerenciar as configurações de aplicativo do Azure Functions fora do código usando a Configuração de Aplicativos do Azure. Com a integração do provedor de configuração do .NET, você pode adicionar a Configuração de Aplicativos como uma fonte de configuração extra com apenas algumas alterações de código simples.

Pré-requisitos

Adicionar um valor-chave

Adicione o valor-chave a seguir ao repositório de Configuração de Aplicativos e deixe os campos Rótulo e Tipo de Conteúdo com seus valores padrão. 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
TestApp:Settings:Message Dados da Configuração de Aplicativos do Azure

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 Aplicativos 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.

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

    • Microsoft.Azure.AppConfiguration.Functions.Worker
    • Azure.Identity
  2. 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 adicional chamando o método AddAzureAppConfiguration.

    Use a autenticação DefaultAzureCredential no 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;
    
    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 keys that start with `TestApp:` and have no label
               .Select("TestApp:*");
    });
    
  3. Abra Function1.cs e adicione o namespace a seguir.

    using Microsoft.Extensions.Configuration;
    

    Atualize o construtor para obter uma instância de IConfiguration por meio da injeção de dependência.

    private readonly IConfiguration _configuration;
    private readonly ILogger<Function1> _logger;
    
    public Function1(IConfiguration configuration, ILogger<Function1> logger)
    {
        _configuration = configuration;
        _logger = logger;
    }
    
  4. Atualize o método Run para ler valores da configuração.

    [Function("Function1")]
    public IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req)
    {
        _logger.LogInformation("C# HTTP trigger function processed a request.");
    
        // Read configuration data
        string key = "TestApp:Settings:Message";
        string? message = _configuration[key];
    
        return new OkObjectResult(message ?? $"Please create a key-value with the key '{key}' in Azure App Configuration.");
    }
    

Testar a função localmente

  1. Defina a variável de ambiente.

    Defina a variável de ambiente chamada AZURE_APPCONFIG_ENDPOINT como o ponto de extremidade do seu 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>'
    
  2. 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.

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

    Depuração de função do Início Rápido no VS

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

    Inicialização local da Função do Início Rápido

Gerenciar parâmetros de gatilho com referências de Configuração de Aplicativo

Os gatilhos do Azure Functions definem como uma função é invocada. Atributos de gatilho, como nomes de fila ou nomes de banco de dados, são carregados no momento da inicialização do host e não podem recuperar diretamente valores da Configuração de Aplicativos do Azure. Para gerenciar esses parâmetros, você pode usar o recurso de referência de Configuração de Aplicativo disponível para o Azure Functions e o Serviço de Aplicativo.

O recurso de referência de Configuração de Aplicativo permite que você faça referência a valores-chave armazenados na Configuração de Aplicativos do Azure diretamente das configurações do aplicativo. O Azure Functions resolve essas referências na inicialização, permitindo que você gerencie parâmetros de gatilho de forma central e segura.

Por exemplo, considere um aplicativo de funções disparado por fila. Em vez de especificar o nome da fila diretamente no atributo de gatilho, você pode referenciar um valor-chave armazenado na Configuração de Aplicativos do Azure.

  1. No repositório de Configuração de Aplicativos do Azure, adicione um valor de chave para o nome da fila:

    Chave Valor
    TestApp:Storage:QueueName <O nome da fila em sua conta de armazenamento>
  2. Em seu aplicativo de funções, selecione Configurações ->Variáveis de ambiente ->Configurações de aplicativo no portal do Azure e crie uma configuração de aplicativo que faça referência à chave de Configuração de Aplicativo:

    Nome Valor
    MyQueueName @Microsoft.AppConfiguration(Endpoint=<your-store-endpoint>; Key=TestApp:Storage:QueueName)

    Dica

    Se você tiver vários valores-chave na Configuração de Aplicativos do Azure, poderá exportá-los em lote como referências de Configuração de Aplicativo para o Azure Functions usando o portal do Azure ou a CLI.

  3. Habilite a identidade gerenciada para seu aplicativo do Azure Functions e atribua a ela a função Leitor de Dados de Configuração de Aplicativo para o repositório de Configuração de Aplicativos. Para obter instruções detalhadas sobre como configurar referências de Configuração de Aplicativos, consulte Usar referências de Configuração de Aplicativo no Serviço de Aplicativo e no Azure Functions.

  4. Atualize sua função disparada por fila para usar a configuração do aplicativo:

    [Function("QueueTriggeredFunction")]
    public void Run([QueueTrigger(queueName: "%MyQueueName%")] QueueMessage message)
    {
        _logger.LogInformation($"C# Queue trigger function processed: {message.MessageText}");
    }
    

    Em runtime, o Azure Functions resolve o espaço reservado %MyQueueName% para o valor armazenado na Configuração de Aplicativos do Azure, permitindo que você gerencie parâmetros de gatilho centralmente sem codificar-os no código de função.

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 início rápido, você integrou a Configuração de Aplicativos do Azure a um aplicativo do Azure Functions. Para saber como habilitar seu aplicativo de funções para atualizar dinamicamente as configurações, prossiga para o próximo tutorial.

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

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