Google PCD: Design de API, Integração e Desenvolvimento Orientado a Eventos — Guia de estudos

Faz parte do Google Professional Cloud Developer — Guia de estudos. Pratique com respostas verificadas no centro de exames da Google, ou faça testes cronometrados no ExamRoll.io.

Visão Geral

A integração de aplicações modernas no Google Cloud combina APIs síncronas bem projetadas com padrões assíncronos e orientados a eventos resilientes. O objetivo é fornecer contratos claros, identidade forte, tratamento de erros consistente e controles operacionais que mantêm a latência baixa e a disponibilidade alta mesmo sob falhas, escalonamento ou mudanças. Esta seção aborda escolhas de protocolo e API, gateways e autenticação, mensageria e roteamento de eventos, trabalho em segundo plano (background), orquestração, identidade e confiança entre serviços, padrões de confiabilidade, webhooks seguros e evolução segura de esquemas (schemas).

Design e Gerenciamento de APIs

Escolha o protocolo certo:

Versionamento e paginação:

Validação e erros:

Opções de gerenciamento de API:

Autenticação e cotas:

Exemplo mínimo de OpenAPI para o API Gateway com backend no Cloud Run e OIDC:

openapi: 3.0.0
info: {title: orders, version: 1.0.0}
paths:
  /v1/orders:
    get:
      security: [{firebase: []}]
      x-google-backend: {address: https://orders-xyz-uc.a.run.app}
      responses: {"200": {description: OK}}
components:
  securitySchemes:
    firebase:
      type: http
      scheme: bearer
      bearerFormat: JWT
      x-google-issuer: https://securetoken.google.com/PROJECT_ID
      x-google-audiences: PROJECT_ID

Mensageria Assíncrona e Eventos

Fundamentos do Pub/Sub:

Crie um tópico, uma inscrição (subscription) e uma DLQ:

gcloud pubsub topics create orders
gcloud pubsub topics create orders-dlq
gcloud pubsub subscriptions create orders-sub \
  --topic=orders \
  --dead-letter-topic=orders-dlq \
  --max-delivery-attempts=5 \
  --ack-deadline=30

Lógica do consumidor: implemente handlers idempotentes e desduplicação (ex: por messageId ou chave de idempotência no nível da aplicação); tente novamente erros transitórios com backoff; mova mensagens irrecuperáveis para a DLQ e alerte.

Eventarc e CloudEvents:

Crie um gatilho (trigger) do Eventarc para a finalização de objetos no Cloud Storage:

gcloud eventarc triggers create index-new-objects \
  --destination-run-service=media-indexer \
  --destination-run-region=us-central1 \
  --event-filters="type=google.cloud.storage.object.v1.finalized" \
  --event-filters="bucket=my-assets-bucket" \
  --service-account=eventarc-router@PROJECT_ID.iam.gserviceaccount.com

Desvantagens e Vantagens (Trade-offs):

Orquestração, Trabalho em Segundo Plano e Processos de Longa Duração

Cloud Tasks:

Crie uma fila com limites de taxa e novas tentativas:

gcloud tasks queues create payments-queue \
  --max-dispatches-per-second=50 \
  --max-concurrent-dispatches=200 \
  --max-attempts=10 \
  --min-backoff=5s \
  --max-backoff=300s

Workflows:

Esboço de compensação:

main:
  params: [orderId]
  steps:
  - charge:
      call: http.post
      args: {url: ${paymentsUrl}/charge, auth: {type: OIDC}, body: {orderId: ${orderId}}}
      result: chargeRes
  - reserveInventory:
      try:
        steps:
        - reserve:
            call: http.post
            args: {url: ${inventoryUrl}/reserve, auth: {type: OIDC}, body: {orderId: ${orderId}}}
      except:
        as: e
        steps:
        - refund:
            call: http.post
            args: {url: ${paymentsUrl}/refund, auth: {type: OIDC}, body: {paymentId: ${chargeRes.body.id}}}
        - raise: ${e}

Orientação operacional:

Identidade, Confiabilidade e Integrações

Identidade de serviço para serviço e propagação de tokens:

Obtenha um token de ID no Cloud Run:

AUD="https://inventory-xyz-uc.a.run.app"
TOKEN=$(curl -s -H "Metadata-Flavor: Google" \
  "http://metadata/computeMetadata/v1/instance/service-accounts/default/identity?audience=${AUD}")
curl -H "Authorization: Bearer ${TOKEN}" "${AUD}/v1/check"

Dependências síncronas e resiliência:

Webhooks e integrações de terceiros:

Evolução de esquema e compatibilidade:

Segurança e cotas em toda a stack:

Cenário de Problema Prático

A AcmeRetail está construindo um serviço de “clique e retire” (click-to-collect) no Google Cloud. Uma aplicação web em React chama uma API pública para fazer pedidos; os serviços de backend devem reservar o estoque, cobrar pagamentos e notificar as lojas. A equipe precisa de APIs de baixa latência, processamento em segundo plano confiável, atualizações orientadas a eventos e rollback seguro em caso de falhas parciais.

Abordagem:

  1. Expor uma API REST pública via API Gateway na frente de um serviço de pedidos (orders) no Cloud Run.
  1. Implementar chamadas de serviço para serviço com gRPC para os caminhos críticos internos (hot paths) (pedidos para estoque, precificação).
  1. Usar o Workflows para orquestrar a saga do pedido: cobrar pagamento, reservar estoque, criar tarefa de retirada; compensar em caso de falha.
  1. Publicar eventos de domínio nos tópicos orders e inventory do Pub/Sub para consumidores downstream (analytics, notificações de loja).
  1. Disparar notificações para as lojas via Eventarc para um serviço notificador no Cloud Run em resposta a alterações relevantes no Cloud Storage e Firestore.
  1. Lidar com webhooks do provedor de pagamento com um endpoint dedicado no Cloud Run, protegido pelo API Gateway, verificando assinaturas HMAC e usando o Cloud Tasks para o processamento.
  1. Aplicar padrões de confiabilidade: circuit breakers no Apigee ou Envoy para chamadas de saída para o provedor de pagamento; timeouts do cliente definidos abaixo dos SLAs do provedor; retentativas com backoff exponencial truncado para erros 429/5xx.
  1. Adotar controles de evolução de esquema: Protobuf para gRPC interno com campos reservados; respostas REST usam alterações JSON aditivas; o Pub/Sub usa validação de esquema Protobuf no momento da publicação.
  1. Observar e operar: propagar cabeçalhos de rastreamento entre o API Gateway e os serviços; exportar métricas do Cloud Logging para taxas de erro e tamanho da DLQ; alertar sobre o consumo do SLO (burn) e anomalias de 429/5xx.

Computação · Todos os domínios · Dados de Aplicação

Pratique estas questões → · Prática cronometrada no ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Passe no seu exame →

Navegar Google →

Related guides

Acesso completo

Uma assinatura. Todos os exames.

Todo plano desbloqueia pesquisa ilimitada de respostas, testes práticos, explicações de AI e a biblioteca completa de recursos — em mais de 20 idiomas.

Mensal
24.87
Just €0.83/day
Tudo incluído:
  • Pesquisa ilimitada de respostas
  • Testes práticos ilimitados
  • Explicações com AI
  • Biblioteca completa de recursos
  • Mais de 20 idiomas
  • Atualizações semanais de conteúdo
  • Recompensas e indicações
  • Suporte prioritário
Iniciar teste grátis

*Não é necessário cartão de crédito

Melhor custo-benefício
12 meses
179.87
Just €0.49/daySave 40%
Tudo incluído:
  • Pesquisa ilimitada de respostas
  • Testes práticos ilimitados
  • Explicações com AI
  • Biblioteca completa de recursos
  • Mais de 20 idiomas
  • Atualizações semanais de conteúdo
  • Recompensas e indicações
  • Suporte prioritário
Iniciar teste grátis

*Não é necessário cartão de crédito

✓ Plano gratuito incluído · ✓ Cancele a qualquer momento · ✓ Todos os planos desbloqueiam o produto completo