Criar e implantar no Google Cloud com o Antigravity

1. Introdução

fca14bb9f4bb74f4.png

Neste codelab, você vai aprender a usar o Google Antigravity (chamado de Antigravity no restante do documento) para projetar, criar e implantar um aplicativo sem servidor no Google Cloud. Vamos criar um pipeline de documentos sem servidor e orientado a eventos que ingere arquivos do Google Cloud Storage (GCS), os processa usando o Cloud Run e o Gemini e transmite os metadados para o BigQuery.

O que você vai aprender

  • Como usar o Antigravity para planejamento e design arquitetônico.
  • Gere infraestrutura como código (scripts shell) com um agente de IA.
  • Crie e implante um serviço do Cloud Run baseado em Python.
  • Integrar o Gemini na Vertex AI para análise de documentos multimodais.
  • Verifique o pipeline de ponta a ponta usando o artefato de tutorial do Antigravity.

O que é necessário

2. Visão geral do app

Antes de começar a arquitetar e implementar o aplicativo usando o Antigravity, vamos descrever o aplicativo que queremos criar.

Queremos criar um pipeline de documentos sem servidor e orientado a eventos que ingere arquivos do Google Cloud Storage (GCS), os processe usando o Cloud Run e o Gemini e transmita os metadados para o BigQuery.

Um diagrama de arquitetura de alto nível para esse aplicativo pode ser assim:

3bd519cfab38258d.png

Não precisa ser preciso. O Antigravity pode nos ajudar a descobrir os detalhes da arquitetura ao longo do caminho. No entanto, é útil ter uma ideia do que você quer criar. Quanto mais detalhes você fornecer, melhores serão os resultados da Antigravity em termos de arquitetura e código.

3. Planejar a arquitetura

Estamos prontos para começar a planejar os detalhes da arquitetura com o Antigravity.

O Antigravity é excelente para planejar sistemas complexos. Em vez de escrever código imediatamente, podemos começar definindo a arquitetura de alto nível.

Primeiro, verifique se você está no Gerenciador de agentes. Se você acabou de abrir o Antigravidade, clique no botão Open Agent Manager no meio ou no mesmo Open Agent Manager no canto superior direito.

No Gerenciador de agentes, você pode abrir um espaço de trabalho ou usar o Playground, um espaço independente para protótipos e experimentos rápidos. Vamos começar com o Playground.

Clique no botão + para iniciar uma nova conversa no Playground:

4e33c028a604a375.png

Isso abre uma interface em que você pode fornecer o comando, conforme mostrado abaixo:

fbf023e84f0eb3b2.png

No canto superior direito, clique no ícone de configurações ⚙️ e defina Review Policy em Artifact e Terminal Command Auto Execution em Terminal como Request Review. Assim, em cada etapa, você poderá revisar e aprovar o plano antes da execução pelo agente.

Comando

Agora, estamos prontos para dar nosso primeiro comando ao Antigravity.

Primeiro, verifique se o Antigravity está no modo Planning e, para o modelo, vamos usar o Gemini Pro (High) (mas fique à vontade para testar outros).

Insira o comando a seguir e clique no botão "Enviar":

I want to build a serverless event-driven document processing pipeline on Google Cloud.
Architecture:
- Ingestion: Users upload files to a Cloud Storage bucket.
- Trigger: File uploads trigger a Pub/Sub message.
- Processor: A Python-based Cloud Run service receives the message, processes the file (simulated OCR), and extracts metadata.
- Storage: Stream the metadata (filename, date, tags, word_count) into a BigQuery dataset. 

Lista de tarefas e plano de implementação

A Antigravity vai analisar sua solicitação e gerar uma lista de tarefas e um plano de implementação.

Este plano descreve:

  • Infraestrutura: bucket do GCS, tópico do Pub/Sub, conjunto de dados do BigQuery.
  • Processador: app Python/Flask, Dockerfile, requisitos.
  • Integração: notificações do GCS → Pub/Sub → Cloud Run.

O resultado será semelhante ao seguinte:

ada19341c490a570.png

Clique no botão Open ao lado da linha Task. Isso vai mostrar um conjunto de tarefas criadas pelo Antigravity. O agente vai analisar cada uma delas:

19675c55a71b373.png

A próxima etapa é analisar o plano de implementação e dar permissão ao agente para continuar.

Clique no plano de implementação para conferir os detalhes. Leia com atenção. Esta é sua chance de enviar feedback sobre a implementação. Clique em qualquer parte do plano de implementação e adicione comentários. Depois de adicionar alguns comentários, envie para revisão as mudanças que você quer ver, principalmente em relação a nomes, ID do projeto do Google Cloud, região etc.

Quando tudo estiver certo, clique no botão Proceed para dar ao agente permissão para continuar com o plano de implementação.

4. Gerar o aplicativo

Depois que o plano é aprovado, o Antigravity começa a gerar os arquivos necessários para o aplicativo, desde scripts de provisionamento até código do aplicativo.

O Antigravity vai criar uma pasta e começar a criar os arquivos necessários para o projeto. Na nossa execução de amostra, vimos o seguinte:

4d98413e3bd17148.png

Um arquivo de script shell setup.sh ou com nome semelhante é gerado, o que automatiza a criação de recursos. Ela trabalha com:

  1. Ativação de APIs (run, pubsub, bigquery, storage).
  2. Criar o bucket do Google Cloud Storage (doc-ingestion-{project-id}).
  3. Como criar o conjunto de dados e a tabela do BigQuery (pipeline_data.processed_docs).
  4. Configurar tópicos e notificações do Pub/Sub.

O agente precisa gerar um aplicativo Python (main.py) que detecte mensagens push do Pub/Sub. Ele usa uma lógica de OCR simulada, gerando contagens e tags de palavras aleatórias e persistindo isso no BigQuery.

Depois que esse script de configuração for gerado, o Antigravity vai pedir que você o execute. Confira um exemplo de tela abaixo:

44395ab66413a64f.png

Clique em Accept conforme necessário.

O script de provisionamento vai criar os recursos e validar se eles foram criados. Se a verificação for bem-sucedida, o contêiner será criado e implantado como um serviço (em main.py) no Cloud Run. Confira um exemplo de saída abaixo:

e0e625e218e7fe46.png

Como parte da implantação do serviço, ele também vai configurar assinaturas do Pub/Sub e outras conexões necessárias para o funcionamento do pipeline. Isso deve levar alguns minutos.

Enquanto isso, mude para Inbox (no canto superior esquerdo) e confira as tarefas Pending que aguardam sua entrada:

ddd2f49d02fad987.png

Essa é uma boa maneira de garantir que você está aprovando as tarefas enquanto o agente busca seu feedback.

5. Verificar o aplicativo

Depois que o pipeline é implantado, o Antigravity verifica se o aplicativo realmente funciona. O Antigravity automatiza isso com etapas de verificação na lista de tarefas. Confira um exemplo de tela abaixo:

b8758b77880cc4d9.png

Ele cria um artefato de teste (test.txt) e quer fazer upload dele para um bucket do Google Cloud Storage. Clique em Accept para continuar.

Se quiser fazer mais testes por conta própria, siga a dica da etapa de validação do Antigravity, em que ele usa o utilitário gsutil para fazer upload de um arquivo de amostra para o bucket do Cloud Storage. O comando de exemplo é mostrado abaixo:

gsutil cp <some-test-doc>.txt gs://<bucket-name>/

Verificar os resultados no BigQuery

Como parte do processo de verificação, ele também vai verificar se os dados foram mantidos no BigQuery.

c0f08fedf671e9bd.png

Observe a consulta SQL usada para verificar os documentos.

Depois da verificação, a lista de tarefas vai aparecer como concluída:

b55ad48a87f95eca.png

Opcional: verificação manual

Mesmo que a Antigravity já tenha verificado o aplicativo, você também pode conferir manualmente no console do Google Cloud se todos os recursos foram criados. Para isso, siga estas etapas.

Cloud Storage

Objetivo: verificar se o bucket existe e se há arquivos enviados.

  1. Acesse Cloud Storage > Buckets.
  2. Localize o bucket chamado [PROJECT_ID]-doc-uploads.
  3. Clique no nome do bucket para procurar arquivos.
  4. Verifique se os arquivos enviados aparecem (por exemplo, test.txt).

Pub/Sub

Objetivo: confirmar se o tópico existe e tem uma assinatura push.

  1. Acesse Pub/Sub > Tópicos.
  2. Encontre doc-processing-topic.
  3. Clique no ID do tópico.
  4. Role a tela para baixo até a guia Inscrições.
  5. Verifique: confira se doc-processing-sub está listado com o tipo de entrega "Push".

Cloud Run

Objetivo: verificar o status e os registros do serviço.

  1. Navegue até Cloud Run.
  2. Clique no serviço doc-processor.
  3. Verificar:
  4. Integridade: marca de seleção verde indicando que o serviço está ativo.
  5. Registros: clique na guia "Registros". Procure entradas como "Processando arquivo: gs://..." e "Processado com sucesso...".

BigQuery

Objetivo: validar se os dados estão realmente armazenados.

  1. Acesse BigQuery > Espaço de trabalho SQL.
  2. No painel "Explorador", expanda projeto > conjunto de dados pipeline_data.
  3. Clique na tabela processed_docs.
  4. Clique na guia Visualização.
  5. Verifique: você vai encontrar linhas com filename, upload_date, tags e word_count.

Tutorial

Como etapa final, o Antigravity gera um artefato de tutorial. Este artefato resume:

  • Mudanças feitas.
  • Os comandos de verificação são executados.
  • Resultados reais (saída da consulta mostrando os metadados extraídos pelo Gemini).

Clique em Open para conferir. Confira um exemplo de saída abaixo:

47ecf561d0252924.png

6. Conheça o aplicativo

Neste ponto, você já tem o app básico provisionado e em execução. Antes de se aprofundar na extensão desse aplicativo, reserve um momento para analisar o código. Para mudar para o editor, clique no botão Open Editor no canto superior direito.

Confira um breve resumo dos arquivos que podem aparecer:

  1. setup.sh: o script principal que provisiona todos os recursos do Google Cloud e ativa as APIs necessárias.
  2. main.py: o principal ponto de entrada do pipeline. Esse app Python cria um servidor da Web que recebe mensagens push do Pub/Sub, baixa o arquivo do GCS, o "processa" (simula OCR) e transmite os metadados para o BigQuery.
  3. Dockerfile: define como empacotar o app em uma imagem de contêiner.
  4. requirements.txt: lista as dependências do Python.

Você também pode encontrar outros scripts e arquivos de texto necessários para testes e verificação.

Neste ponto, talvez você também queira migrar do Playground para um espaço de trabalho/pasta dedicado. Para fazer isso, clique no botão relevante no canto superior direito:

278de21c89e5c726.png

Depois que você escolher uma pasta, todo o código será movido para ela, e um novo espaço de trabalho será criado com a pasta e o histórico de conversas.

7. Estender o aplicativo

Agora que você tem um aplicativo básico funcionando, pode continuar iterando e estendendo o aplicativo. Confira algumas ideias.

Adicionar um front-end

Crie uma interface da Web simples para visualizar os documentos processados.

Tente o seguinte comando: Create a simple Streamlit or Flask web application that connects to BigQuery. It should display a table of the processed documents (filename, upload_date, tags, word_count) and allow me to filter the results by tag

Integração com IA/ML reais

Em vez de usar o processamento simulado de OCR, use modelos do Gemini para extrair, classificar e traduzir.

  1. Substitua a lógica de OCR fictícia. Envie a imagem/PDF para o Gemini extrair texto e dados reais. Analise o texto extraído para classificar o tipo de documento (fatura, contrato, currículo) ou extrair entidades (datas, nomes, locais).
  2. Detectar automaticamente o idioma do documento e traduzir para inglês antes de armazenar. Você também pode usar qualquer outro idioma.

Melhorar o armazenamento e a análise

É possível configurar regras de ciclo de vida no bucket para mover arquivos antigos para o armazenamento "Coldline" ou "Archive" e economizar custos.

Robustez e segurança

Você pode tornar o app mais robusto e seguro das seguintes maneiras:

  1. Filas de mensagens inativas (DLQ): atualize a assinatura do Pub/Sub para lidar com falhas. Se o serviço do Cloud Run não processar um arquivo cinco vezes, envie a mensagem para um tópico/bucket separado de "Dead Letter" para inspeção humana.
  2. Secret Manager: se o app precisar de chaves de API ou configurações sensíveis, armazene-as no Secret Manager e acesse-as com segurança no Cloud Run em vez de codificar strings.
  3. Eventarc: faça upgrade do Pub/Sub direto para o Eventarc e tenha um roteamento de eventos mais flexível, permitindo acionar com base em registros de auditoria complexos ou outros eventos de serviço do GCP.

É claro que você pode criar suas próprias ideias e usar o Antigravidade para ajudar a implementá-las.

8. Conclusão

Você criou um pipeline de documentos escalonável, sem servidor e com tecnologia de IA em minutos usando o Google Antigravity. Você aprendeu a:

  • Planejar arquiteturas com IA.
  • Instrua e gerencie o Antigravity enquanto ele gera o aplicativo, desde a geração de código até a implantação e validação.
  • Verificar implantações e validação com tutoriais.

Documentos de referência