Partilhar via


Guia de início rápido: responder a alterações de banco de dados no Azure Cosmos DB usando o Azure Functions

Neste Guia de início rápido, você usa o Visual Studio Code para criar um aplicativo que responde a alterações de banco de dados em um banco de dados No SQL no Azure Cosmos DB. Depois de testar o código localmente, você o implanta em um novo aplicativo de função sem servidor criado em execução em um plano de Consumo Flex no Azure Functions.

A origem do projeto usa a extensão Azure Developer CLI (azd) com o Visual Studio Code para simplificar a inicialização e verificação do código do projeto localmente, bem como a implantação do código no Azure. Essa implantação segue as práticas recomendadas atuais para implantações seguras e escaláveis do Azure Functions.

Importante

Enquanto responder a alterações numa base de dados NoSQL do Azure Cosmos DB é suportado para todas as linguagens, este cenário de início rápido atualmente só tem exemplos para C#, Python e TypeScript. Para completar este quickstart, selecione uma destas línguas suportadas no topo do artigo.

Pré-requisitos

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

Inicializar o projeto

Você pode usar o azd init comando da 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 espaço de trabalho no qual você deseja criar seu projeto.

  2. Prima F1 para abrir a paleta de comandos, procure e execute o comando Azure Developer CLI (azd): Initialize App (init)e, em seguida, selecione Selecionar um modelo.

    Pode haver um pequeno atraso enquanto azd inicializa a pasta ou o espaço de trabalho atual.

  1. Quando solicitado, escolha Selecionar um modelo e, em seguida, procure e selecione Azure Functions with Cosmos DB Bindings (.NET).

  2. Quando solicitado, insira um nome de ambiente exclusivo, como cosmosdbchanges-dotnet.

    Este comando extrai os arquivos de projeto do repositório de modelos e inicializa o projeto na pasta ou espaço de trabalho atual. No azd, o ambiente é usado para manter um contexto de implantação exclusivo para seu aplicativo, e você pode definir mais de um. Também faz parte do nome do grupo de recursos que você cria no Azure.

  1. Quando solicitado, escolha Selecionar um modelo e, em seguida, procure e selecione Azure Functions TypeScript CosmosDB trigger.

  2. Quando solicitado, insira um nome de ambiente exclusivo, como cosmosdbchanges-ts.

    Este comando extrai os arquivos de projeto do repositório de modelos e inicializa o projeto na pasta ou espaço de trabalho atual. No azd, o ambiente é usado para manter um contexto de implantação exclusivo para seu aplicativo, e você pode definir mais de um. Também faz parte do nome do grupo de recursos que você cria no Azure.

  1. Quando solicitado, escolha Selecionar um modelo e, em seguida, procure e selecione Azure Functions Python with CosmosDB triggers and bindings....

  2. Quando solicitado, insira um nome de ambiente exclusivo, como cosmosdbchanges-py.

    Este comando extrai os arquivos de projeto do repositório de modelos e inicializa o projeto na pasta ou espaço de trabalho atual. No azd, o ambiente é usado para manter um contexto de implantação exclusivo para seu aplicativo, e você pode definir mais de um. Também faz parte do nome do grupo de recursos que você cria no Azure.

  1. Execute este comando, dependendo do seu sistema operacional local, para conceder aos scripts de configuração as permissões necessárias:

    Execute este comando com privilégios suficientes:

    chmod +x ./infra/scripts/*.sh
    

Antes de executar seu aplicativo localmente, você deve criar os recursos no Azure. Este projeto não usa emulação local para o Azure Cosmos DB.

Criar recursos do Azure

Este projeto está configurado para usar o comando azd provision para criar um app de função num plano Flex Consumption, 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, procure 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, procurar e executar 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:

    Pronta Description
    Selecione uma Assinatura do Azure para usar Escolha a subscrição na qual pretende que os seus recursos sejam criados.
    parâmetro de implantação da localização Região do Azure na qual criar o grupo de recursos que contém os novos recursos do Azure. Apenas as regiões que atualmente suportam o plano Flex Consumption são mostradas.
    Parâmetro de implantação vnetEnabled Embora o modelo ofereça 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 Flex Consumption e aplicação funcional
    • Conta do Azure Cosmos DB
    • Armazenamento do Azure (obrigatório) e Application Insights (recomendado)
    • Políticas e funções de acesso para a 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 necessário quando executado localmente. Esse arquivo também contém as configurações necessárias para se conectar ao seu banco de dados do Azure Cosmos DB no Azure.

    Sugestão

    Se alguma etapa falhar durante o provisionamento, você poderá executar o azd provision comando novamente depois de resolver quaisquer problemas.

    Depois que o comando for concluído com êxito, você poderá executar o código do projeto localmente e acionar no banco de dados do Azure Cosmos DB no Azure.

Executar a função localmente

O Visual Studio Code integra-se com as ferramentas principais do Azure Functions para permitir que você execute este projeto em seu computador de desenvolvimento local antes de publicar em seu novo aplicativo de função no Azure.

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

  2. Para iniciar a função localmente, pressione F5 ou o ícone Executar e Depurar na barra de atividades do lado esquerdo. O painel Terminal exibe a saída das Ferramentas Principais. Seu aplicativo é iniciado no painel Terminal e você pode ver o nome da função que está sendo executada localmente.

    Se você tiver problemas para executar no Windows, verifique se o terminal padrão do Visual Studio Code não está definido como WSL Bash.

  3. Com as Ferramentas Principais ainda em execução no Terminal, pressione F1 e, na paleta de comandos, procure e execute o comando NoSQL: Create Item... e selecione o document-db banco de dados e o documents contêiner.

  4. Substitua o conteúdo do arquivo Novo Item.json por esses dados JSON e selecione Salvar:

    {
        "id": "doc1", 
        "title": "Sample document", 
        "content": "This is a sample document for testing my Azure Cosmos DB trigger in Azure Functions."
    } 
    

    Depois de selecionar Salvar, você verá a execução da função no terminal e o documento local será atualizado para incluir metadados adicionados pelo serviço.

  5. Quando terminar, pressione Ctrl+C na janela do terminal para interromper o processo do func.exe host.

Rever o código (opcional)

A função é acionada com base no feed de alterações em um banco de dados NoSQL do Azure Cosmos DB. Essas variáveis de ambiente configuram como o gatilho monitora o feed de alterações:

  • COSMOS_CONNECTION__accountEndpoint: O ponto de extremidade da conta do Cosmos DB
  • COSMOS_DATABASE_NAME: O nome do banco de dados a ser monitorado
  • COSMOS_CONTAINER_NAME: O nome do contêiner a ser monitorado

Essas variáveis de ambiente são criadas para você no Azure (configurações de aplicativo de função) e localmente (local.settings.json) durante a azd provision operação.

Você pode revisar o código que define o gatilho do Azure Cosmos DB no arquivo de projeto CosmosTrigger.cs.

Você pode revisar o código que define o gatilho do Azure Cosmos DB no arquivo de projeto cosmos_trigger.ts.

Você pode revisar o código que define o gatilho do Azure Cosmos DB no arquivo de projeto function_app.py.

Depois de revisar e verificar seu código de função localmente, é hora de publicar o projeto no Azure.

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.

  • Pressione F1 para abrir a paleta de comandos, procurar e executar 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 executado no pacote implantado.

    Depois que o comando for concluído com êxito, seu aplicativo será executado no Azure.

Invoque a função no Azure

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

    Este comando abre seu novo aplicativo de função no portal do Azure.

  2. Na guia Visão geral na página principal, selecione o nome do aplicativo de função e, em seguida, a guia Logs .

  3. Use o NoSQL: Create Item comando no Visual Studio Code para adicionar novamente um documento ao contêiner como antes.

  4. Verifique novamente se a função é acionada por uma atualização no contêiner monitorado.

Reimplantar seu código

Você pode executar o azd deploy comando quantas vezes precisar para implantar atualizações de código em seu aplicativo de função.

Observação

Os arquivos de código implantados são sempre substituídos pelo pacote de implantação mais recente.

Suas respostas iniciais a azd prompts e quaisquer variáveis de ambiente geradas por azd são armazenadas localmente em seu ambiente nomeado. Use o azd env get-values comando para revisar todas as variáveis em seu ambiente que foram usadas ao criar recursos do Azure.

Limpeza de recursos

Quando terminar de trabalhar com seu aplicativo de função e recursos relacionados, você poderá usar este comando para excluir o aplicativo de função e seus recursos relacionados do Azure e evitar incorrer em custos adicionais:

azd down --no-prompt

Observação

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

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