Google PCD: Diseño de API, integración y desarrollo orientado a eventos — Guía de estudio

Forma parte de la Google Professional Cloud Developer — Guía de estudio. Practica con respuestas verificadas en el centro de exámenes de Google, o realiza tests cronometrados en ExamRoll.io.

Descripción general

La integración de aplicaciones modernas en Google Cloud combina APIs síncronas bien diseñadas con patrones asíncronos y orientados a eventos que son resilientes. El objetivo es proporcionar contratos claros, identidad sólida, manejo de errores consistente y controles operativos que mantengan la latencia baja y la disponibilidad alta incluso ante fallos, escalado o cambios. Esta sección cubre la elección de protocolos y APIs, gateways y autenticación, mensajería y enrutamiento de eventos, trabajo en segundo plano, orquestación, identidad y confianza entre servicios, patrones de fiabilidad, webhooks seguros y evolución segura de esquemas.

Diseño y Gestión de APIs

Elige el protocolo adecuado:

Versionado y paginación:

Validación y errores:

Opciones de gestión de APIs:

Autenticación y cuotas:

Ejemplo mínimo de OpenAPI para API Gateway con backend de Cloud Run y 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

Mensajería Asíncrona y Gestión de Eventos

Fundamentos de Pub/Sub:

Crear tema, suscripción y 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 del consumidor: implementa manejadores idempotentes y deduplicación (p. ej., por messageId o una clave de idempotencia a nivel de aplicación); reintenta errores transitorios con backoff; mueve los mensajes irrecuperables a la DLQ y alerta.

Eventarc y CloudEvents:

Crear un disparador de Eventarc para la finalización de objetos en 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

Compensaciones:

Orquestación, Trabajo en Segundo Plano y Procesos de Larga Duración

Cloud Tasks:

Crear una cola con límites de tasa y reintentos:

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:

Esquema de compensación:

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}

Guía operativa:

Identidad, confiabilidad e integraciones

Identidad de servicio a servicio y propagación de tokens:

Obtener un token de ID en 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"

Dependencias síncronas y resiliencia:

Webhooks e integraciones con terceros:

Evolución de esquemas y compatibilidad:

Seguridad y cuotas en toda la pila:

Escenario de problema práctico

AcmeRetail está construyendo un servicio de click-to-collect (compra en línea y recoge en tienda) en Google Cloud. Una aplicación web en React llama a una API pública para realizar pedidos; los servicios de backend deben reservar inventario, procesar pagos y notificar a las tiendas. El equipo necesita API de baja latencia, procesamiento en segundo plano confiable, actualizaciones basadas en eventos y una reversión (rollback) segura en caso de fallos parciales.

Enfoque:

  1. Exponer una API REST pública a través de API Gateway frente a un servicio de pedidos en Cloud Run.
  1. Implementar llamadas de servicio a servicio con gRPC para las rutas internas críticas (hot paths) (pedidos a inventario, precios).
  1. Usar Workflows para orquestar la saga del pedido: cobrar el pago, reservar el inventario, crear la tarea de recogida; compensar en caso de fallo.
  1. Publicar eventos de dominio en los temas de Pub/Sub orders e inventory para consumidores descendentes (downstream) (analítica, notificaciones a tiendas).
  1. Disparar notificaciones a las tiendas a través de Eventarc hacia un servicio notificador en Cloud Run ante cambios relevantes en Cloud Storage y Firestore.
  1. Gestionar los webhooks del proveedor de pagos con un endpoint dedicado en Cloud Run, precedido por API Gateway, verificando firmas HMAC y usando Cloud Tasks para el procesamiento.
  1. Aplicar patrones de confiabilidad: circuit breakers en Apigee o Envoy para llamadas salientes al proveedor de pagos; tiempos de espera del cliente establecidos por debajo de los SLA del proveedor; reintentos con truncated exponential backoff para 429/5xx.
  1. Adoptar controles de evolución de esquemas: Protobuf para gRPC interno con campos reservados; las respuestas REST usan cambios aditivos en JSON; Pub/Sub usa la validación de esquemas Protobuf en el momento de la publicación.
  1. Observar y operar: propagar las cabeceras de trazabilidad entre API Gateway y los servicios; exportar métricas de Cloud Logging para las tasas de error y el tamaño de la DLQ; alertar sobre el consumo del SLO (SLO burn) y anomalías de 429/5xx.

Cómputo · Todos los dominios · Datos de aplicación

Practica estas preguntas → · Práctica cronometrada en 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.

Aprueba tu examen →

Explorar Google →

Related guides

Acceso todo en uno

Una suscripción. Todos los exámenes.

Cada plan desbloquea la búsqueda ilimitada de respuestas, pruebas de práctica, explicaciones de AI y la biblioteca completa de recursos, en más de 20 idiomas.

Mensual
24.87
Just €0.83/day
Todo incluido:
  • Búsqueda ilimitada de respuestas
  • Pruebas de práctica ilimitadas
  • Explicaciones con tecnología AI
  • Biblioteca completa de recursos
  • Más de 20 idiomas
  • Actualizaciones semanales de contenido
  • Recompensas y referencias
  • Soporte prioritario
Iniciar prueba gratuita

No se requiere tarjeta de crédito*

Mejor valor
12 meses
179.87
Just €0.49/daySave 40%
Todo incluido:
  • Búsqueda ilimitada de respuestas
  • Pruebas de práctica ilimitadas
  • Explicaciones con tecnología AI
  • Biblioteca completa de recursos
  • Más de 20 idiomas
  • Actualizaciones semanales de contenido
  • Recompensas y referencias
  • Soporte prioritario
Iniciar prueba gratuita

No se requiere tarjeta de crédito*

✓ Plan gratuito incluido · ✓ Cancela en cualquier momento · ✓ Todos los planes desbloquean el producto completo