Compartilhar via


Início Rápido: Responder às alterações do Banco de Dados SQL do Azure usando o Azure Functions

Neste Início Rápido, você usará o Visual Studio Code para criar um aplicativo que responde a alterações em uma tabela do Banco de Dados SQL do Azure. Depois de testar o código localmente, você o implantará em um novo aplicativo de funções sem servidor em execução em um plano de Consumo Flex no Azure Functions.

A fonte do projeto usa a extensão Azure Developer CLI (azd) com o Visual Studio Code para simplificar a inicialização, verificar o código do projeto localmente e implantar seu código no Azure. Esta implantação segue as melhores práticas atuais para implantações seguras e escaláveis do Azure Functions.

Importante

Embora a resposta a alterações em um banco de dados SQL do Azure tenha suporte para todos os idiomas, esse cenário de início rápido atualmente só tem exemplos para C#, Python e TypeScript. Para concluir este início rápido, selecione um desses idiomas com suporte na parte superior do artigo.

Pré-requisitos

  • Node.js 18.x ou posterior. Use o comando node --version para verificar sua versão.

Inicializar o projeto

Você pode usar o azd init comando na paleta de comandos para criar um projeto de código local do Azure Functions a partir de um modelo.

  1. No Visual Studio Code, abra uma pasta ou workspace no qual você deseja criar seu projeto.

  2. Pressione F1 para abrir a paleta de comandos, pesquise e execute o comando Azure Developer CLI (azd): Initialize App (init)e escolha Selecionar um modelo.

  3. Quando solicitado, pesquise e selecione Azure Functions with SQL Triggers and Bindings.

  4. Quando solicitado, insira um nome de ambiente exclusivo, como sqldbchanges.

Esse comando extrai os arquivos de projeto do repositório de modelos e inicializa o projeto na pasta ou workspace atual. Em azd, o ambiente é utilizado para manter um contexto de implantação único para o seu aplicativo e você pode definir mais de um. Ele também faz parte do nome do grupo de recursos que você cria no Azure.

Esse comando extrai os arquivos de projeto do repositório de modelos e inicializa o projeto na pasta ou workspace atual. Em azd, o ambiente é utilizado para manter um contexto de implantação único para o seu aplicativo e você pode definir mais de um. Ele também faz parte do nome do grupo de recursos que você cria no Azure.

Esse comando extrai os arquivos de projeto do repositório de modelos e inicializa o projeto na pasta ou workspace atual. Em azd, o ambiente é utilizado para manter um contexto de implantação único para o seu aplicativo e você pode definir mais de um. Ele também faz parte do nome do grupo de recursos que você cria no Azure.

Antes de executar seu aplicativo localmente, você deve criar os recursos no Azure.

Criar recursos do Azure

Este projeto é configurado para usar o azd provision comando para criar um aplicativo de funções em um plano de Consumo Flex, juntamente com outros recursos necessários do Azure que seguem as práticas recomendadas atuais.

  1. No Visual Studio Code, pressione F1 para abrir a paleta de comandos, pesquise e execute o comando Azure Developer CLI (azd): Sign In with Azure Developer CLIe entre usando sua conta do Azure.

  2. Pressione F1 para abrir a paleta de comandos, pesquise e execute o comando Azure Developer CLI (azd): Provision Azure resources (provision) para criar os recursos necessários do Azure.

  3. Quando solicitado na janela terminal, forneça estes parâmetros de implantação necessários:

    Rápido Description
    Selecione uma Assinatura do Azure a ser usada Selecione a assinatura na qual você deseja que seus recursos sejam criados.
    parâmetro de implantação de localização Região do Azure na qual criar o grupo de recursos que contém os novos recursos do Azure. Somente regiões que atualmente dão suporte para o plano de Consumo Flex são mostradas.
    Parâmetro de implantação vnetEnabled Embora o modelo dê suporte à criação de recursos dentro de uma rede virtual, para simplificar a implantação e o teste, escolha False.

O azd provision comando usa sua resposta a esses prompts com os arquivos de configuração do Bicep para criar e configurar esses recursos necessários do Azure, seguindo as práticas recomendadas mais recentes:

  • plano de Consumo Flex e aplicativo de funções
  • Banco de Dados SQL do Azure (nome padrão: ToDo)
  • Armazenamento do Microsoft Azure (obrigatório) e Application Insights (recomendado)
  • Políticas de acesso e funções para sua conta
  • Conexões de serviço a serviço usando identidades gerenciadas (em vez de cadeias de conexão armazenadas)

Os ganchos pós-provisionamento também geram o arquivo local.settings.json , que é necessário para ser executado localmente. Esse arquivo contém as configurações necessárias para se conectar ao banco de dados no Azure.

Examinar o código (opcional)

O exemplo define duas funções:

Nome da função Arquivo de código Tipo de gatilho Description
httptrigger-sql-output sql_output_http_trigger.cs Gatilho HTTP Aceita uma carga JSON formatada corretamente e usa a associação de saída SQL para inserir o objeto como uma linha na ToDo tabela.
ToDoTrigger sql_trigger.cs Gatilho SQL Escuta na tabela ToDo por alterações de nível da linha e retorna um objeto que representa a linha alterada.

O ToDoItem tipo é definido em ToDoItem.cs.

Nome da função Arquivo de código Tipo de gatilho Description
http_trigger_sql_output function_app.py Gatilho HTTP Aceita uma carga JSON formatada corretamente e usa a associação de saída SQL para inserir o objeto como uma linha na ToDo tabela.
httptrigger-sql-output sql_trigger_todo Gatilho SQL Escuta na tabela ToDo por alterações de nível da linha e retorna um objeto que representa a linha alterada.

O ToDoItem tipo é definido em todo_item.py.

Nome da função Arquivo de código Tipo de gatilho Description
httpTriggerSqlOutput sql_output_http_trigger.ts Gatilho HTTP Aceita uma carga JSON formatada corretamente e usa a associação de saída SQL para inserir o objeto como uma linha na ToDo tabela.
sqlTriggerToDo sql_trigger.ts Gatilho SQL Escuta na tabela ToDo por alterações de nível da linha e retorna um objeto que representa a linha alterada.

O ToDoItem tipo é definido em ToDoItem.ts.

Ambas as funções usam as variáveis de ambiente no nível AZURE_SQL_CONNECTION_STRING_KEY_* do aplicativo que definem uma conexão baseada em identidade com a instância do Banco de Dados SQL do Azure usando a autenticação da ID do Microsoft Entra. Essas variáveis de ambiente são criadas para você no Azure (configurações do aplicativo de funções) e localmente (local.settings.json) durante a azd provision operação.

Conectar-se ao banco de dados SQL

Você pode usar a extensão do SQL Server (mssql) para o Visual Studio Code para se conectar ao novo banco de dados. Essa extensão ajuda você a fazer atualizações na ToDo tabela para executar a função de gatilho SQL.

  1. Pressione F1 e, na paleta de comandos, pesquise e execute o comando MS SQL: Add Connection.

  2. Na caixa de diálogo Conexão, altere o tipo de entrada para Procurar no Azure e defina estas opções restantes:

    Opção Choose Description
    Servidor Sua instância do SQL Server Por padrão, todos os servidores acessíveis à sua conta do Azure são exibidos. Use Assinatura, Grupo de recursos e Local para ajudar a filtrar a lista de servidores.
    Banco de dados ToDo O banco de dados criado durante o processo de provisionamento.
    Tipo de autenticação Microsoft Entra ID Se você ainda não estiver conectado, selecione Entrar e entrar em sua conta do Azure.
    ID do locatário O locatário específico da conta. Se sua conta tiver mais de um locatário, escolha o locatário correto para sua assinatura.
  3. Selecione Conectar para se conectar ao banco de dados. A conexão usa sua conta de usuário local, que recebe permissões de administrador no servidor de hospedagem e mapeada no dbo banco de dados.

  4. No modo de exibição do SQL Server , localize e expanda Conexões e, em seguida, seu novo servidor no SQL Server Explorer. Expanda Tabelas e verifique se a ToDo tabela existe. Se ele não existir, talvez seja necessário executar azd provision novamente e verificar se há erros.

Executar a função localmente

O Visual Studio Code integra-se às ferramentas do Azure Functions Core para permitir que você execute este projeto em seu computador de desenvolvimento local antes de publicar em seu novo aplicativo de funções no Azure.

  1. Pressione F1 e, na paleta de comandos, pesquise e execute o comando Azurite: Start.

  2. Para iniciar a função localmente, pressione F5 ou o ícone Executar e Depurar na barra Atividade do lado esquerdo.

    O painel Terminal exibe a saída das Core Tools. Seu aplicativo começa no painel Terminal e você pode ver o nome da função que está sendo executada localmente.

Com o aplicativo em execução, você pode verificar e depurar ambos os gatilhos de função.

Para verificar a função de gatilho HTTP que grava em uma associação de saída do SQL:

  1. Copie este objeto JSON, que você também pode encontrar no arquivo de test.http projeto:

    {
      "id": "11111111-1111-1111-1111-111111111111",
      "order": 1,
      "title": "Test Todo Item",
      "url": "https://example.com",
      "completed": false
    }
    

    Este dado representa uma linha que você insere no banco de dados SQL quando chamar o endpoint HTTP. A vinculação de saída converte o objeto de dados em uma operação INSERT no banco de dados.

  2. Com o aplicativo em execução, no modo de exibição do Azure em Workspace, expanda Projeto local>Funções.

  3. Selecione com o botão direito do mouse sua função HTTP (ou Ctrl+clique no macOS), selecione Executar função agora, cole os dados JSON copiados e pressione Enter.

    A função manipula a solicitação HTTP e grava o item no banco de dados SQL conectado e retorna o objeto criado.

  4. De volta ao Gerenciador do SQL Server, selecione a tabela com o botão direito do ToDo mouse (ou Ctrl+clique no macOS) e escolha Selecionar Top 1000. Quando a consulta é executada, ela retorna a linha inserida ou atualizada.

  5. Repita a Etapa 3 e reenvia o mesmo objeto de dados com a mesma ID. Desta vez, a associação de saída executa uma UPDATE operação em vez de uma INSERT e modifica a linha existente no banco de dados.

Quando terminar, digite Ctrl+C no terminal para interromper o processo das Ferramentas Principais.

Publicar no Azure

Você pode executar o azd deploy comando do Visual Studio Code para implantar o código do projeto em seus recursos já provisionados no Azure.

  1. Pressione F1 para abrir a paleta de comandos, pesquise e execute o comando Azure Developer CLI (azd): Deploy to Azure (deploy).

    O azd deploy comando empacota e implanta seu código no contêiner de implantação. O aplicativo é então iniciado e executa no pacote implantado.

  2. Depois que o comando for concluído com êxito, seu aplicativo será executado no Azure. Anote o valor Endpoint, que é a URL do aplicativo de funções em execução no Azure.

Invocar a função no Azure

  1. No Visual Studio Code, pressione F1 e, na paleta de comandos, pesquise e execute o comando Azure: Open in portal, selecione Function appe escolha seu novo aplicativo. Entre com sua conta do Azure, se necessário.

  2. Selecione o fluxo de log no painel esquerdo, que se conecta aos logs do Application Insights para seu aplicativo.

  3. Retorne ao Visual Studio Code para executar as duas funções no Azure.

  1. Pressione F1 para abrir a paleta de comandos, pesquise e execute o comando Azure Functions: Execute Function Now....

  2. Pesquise e selecione seu aplicativo de funções remotas na lista e selecione a função de gatilho HTTP.

  3. Como antes, cole os dados do objeto JSON em Inserir corpo da carga e pressione Inserir.

    {
      "id": "11111111-1111-1111-1111-111111111111",
      "order": 1,
      "title": "Test Todo Item",
      "url": "https://example.com",
      "completed": false
    }
    

    Para executar um INSERT em vez de um UPDATE, substitua-o id por um novo valor GUID.

  4. Retorne ao portal e exiba a saída de execução na janela de log.

Limpar os recursos

Quando terminar de trabalhar com seu aplicativo de funções e recursos relacionados, você pode utilizar este comando para excluir o aplicativo de funções e seus recursos relacionados do Azure e evitar custos adicionais:

azd down --no-prompt

Observação

A opção --no-prompt instrui azd a excluir seu grupo de recursos sem uma confirmação sua.

Este comando não afeta seu projeto de código local.