Guia de início rápido: criar um aplicativo do Azure Functions com a Configuração do Aplicativo do Azure

Neste início rápido, você incorpora o serviço de Configuração de Aplicativo do Azure em um aplicativo do Azure Functions para centralizar o armazenamento e o gerenciamento de todas as configurações do aplicativo separadamente do seu código.

Pré-requisitos

Adicionar um valor-chave

Adicione o seguinte valor-chave à loja de Configuração de Aplicativos e deixe Rótulo e Tipo de Conteúdo com seus valores padrão. Para obter mais informações sobre como adicionar valores-chave a uma loja usando o portal do Azure ou a CLI, vá para Criar um valor-chave.

Key valor
TestApp:Configurações:Mensagem Dados da Configuração do Aplicativo do Azure

Criar um aplicativo Functions

O modelo de projeto do Azure Functions no Visual Studio cria um projeto de biblioteca de classes C# que você pode publicar em um aplicativo de função no Azure. Você pode usar um aplicativo de função para agrupar funções como uma unidade lógica para facilitar o gerenciamento, a implantação, o dimensionamento e o compartilhamento de recursos.

  1. No menu Visual Studio, selecione Arquivo>Novo>Projeto.

  2. Em Criar um novo projeto, insira funções na caixa de pesquisa, escolha o modelo Azure Functions e selecione Avançar.

  3. Em Configurar seu novo projeto, insira um nome de projeto para seu projeto e selecione Criar. O nome da aplicação de funções deve ser válido como um espaço de nomes C#. Portanto, não use sublinhados, hífenes ou outros carateres não alfanuméricos.

  4. Para criar uma nova configuração do aplicativo Azure Functions, use os valores na tabela a seguir:

    Definição valor Description
    Versão .NET .NET 6 isolado Esse valor cria um projeto de função que é executado em um processo de trabalho isolado. O processo de trabalho isolado suporta outra versão não-LTS do .NET e também do .NET Framework. Para obter mais informações, consulte Visão geral das versões de tempo de execução do Azure Functions.
    Modelo de função Acionador HTTP Esse valor cria uma função acionada por uma solicitação HTTP.
    Conta de armazenamento (AzureWebJobsStorage) Emulador de armazenamento Como um aplicativo de função no Azure requer uma conta de armazenamento, uma é atribuída ou criada quando você publica seu projeto no Azure. Um gatilho HTTP não usa uma cadeia de conexão de conta de Armazenamento do Azure; todos os outros tipos de gatilho exigem uma cadeia de conexão de conta de Armazenamento do Azure válida.
    Nível de autorização Anônimo A função criada pode ser acionada por qualquer cliente sem fornecer uma chave. Esta definição de autorização torna mais fácil testar a função nova. Para obter mais informações sobre chaves e autorização, consulte Chaves de autorização e Ligações HTTP e webhook.

    Configurações do projeto do Azure Functions

    Certifique-se de definir o nível de Autorização como Anônimo. Se você escolher o nível padrão de Função, será necessário apresentar a tecla de função em solicitações para acessar seu ponto de extremidade de função.

  5. Selecione Criar para criar o projeto de função e a função de gatilho HTTP.

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

Este projeto usará a injeção de dependência no .NET Azure Functions e adicionará a Configuração do Aplicativo do Azure como uma fonte de configuração extra. O Azure Functions dá suporte à execução em processo ou processo isolado. Escolha o que corresponde às suas necessidades.

  1. Clique com o botão direito do mouse em seu projeto e selecione Gerenciar pacotes NuGet. Na guia Procurar, procure e adicione os seguintes pacotes NuGet ao seu projeto.

  2. Adicione código para se conectar à Configuração do Aplicativo do Azure.

    Adicione um novo arquivo, Startup.cs, com o código a seguir. Ele define uma classe chamada Startup que implementa a FunctionsStartup classe abstrata. Um atributo assembly é usado para especificar o nome do tipo usado durante a inicialização do Azure Functions.

    O ConfigureAppConfiguration método é substituído e o provedor de Configuração de Aplicativo do Azure é adicionado como uma fonte de configuração extra chamando AddAzureAppConfiguration(). O Configure método é deixado vazio, pois você não precisa registrar nenhum serviço neste momento.

    using System;
    using Microsoft.Azure.Functions.Extensions.DependencyInjection;
    using Microsoft.Extensions.Configuration;
    
    [assembly: FunctionsStartup(typeof(FunctionApp.Startup))]
    
    namespace FunctionApp
    {
        class Startup : FunctionsStartup
        {
            public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
            {
                string cs = Environment.GetEnvironmentVariable("ConnectionString");
                builder.ConfigurationBuilder.AddAzureAppConfiguration(cs);
            }
    
            public override void Configure(IFunctionsHostBuilder builder)
            {
            }
        }
    }
    
  3. Abra Function1.cs e adicione o namespace a seguir se ele ainda não estiver presente.

    using Microsoft.Extensions.Configuration;
    

    Adicione ou atualize o construtor usado para obter uma instância de IConfiguration through dependency injection.

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

    [FunctionName("Function1")]
    public async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req, ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
    
        // Read configuration data
        string keyName = "TestApp:Settings:Message";
        string message = _configuration[keyName];
    
        return message != null
            ? (ActionResult)new OkObjectResult(message)
            : new BadRequestObjectResult($"Please create a key-value with the key '{keyName}' in App Configuration.");
    }
    

    Nota

    A Function1 classe e o Run método não devem ser estáticos. Remova o static modificador se ele tiver sido gerado automaticamente.

Testar localmente a função

  1. Defina uma variável de ambiente chamada ConnectionString e defina-a como a chave de acesso à sua loja de configuração de aplicativos. 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 ConnectionString "connection-string-of-your-app-configuration-store"
    

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

        $Env:ConnectionString = "connection-string-of-your-app-configuration-store"
    

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

        export ConnectionString='connection-string-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 tempo de execução das funções do Azure.

    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.

    Função de início rápido iniciar local

Clean up resources (Limpar 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 uma nova loja de Configuração de Aplicativo e a usou com um aplicativo do Azure Functions por meio do provedor de Configuração de Aplicativo. Para saber como atualizar seu aplicativo Azure Functions para atualizar dinamicamente a configuração, continue para o próximo tutorial.

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