Google PCD: API-ontwerp, integratie en event-driven ontwikkeling — Studiegids

Onderdeel van de Google Professional Cloud Developer — Studiegids. Oefen met geverifieerde antwoorden in het Google-examencentrum, of doe getimede oefentests op ExamRoll.io.

Overzicht

Moderne applicatie-integratie op Google Cloud combineert goed ontworpen synchrone API’s met veerkrachtige asynchrone en event-driven patronen. Het doel is om duidelijke contracten, sterke identiteit, consistente foutafhandeling en operationele controles te bieden die de latency laag en de beschikbaarheid hoog houden, zelfs bij storingen, schaalvergroting of veranderingen. Dit gedeelte behandelt protocol- en API-keuzes, gateways en authenticatie, messaging en event routing, achtergrondtaken, orkestratie, identiteit en vertrouwen tussen services, betrouwbaarheidspatronen, veilige webhooks en veilige schema-evolutie.

API-ontwerp en -beheer

Kies het juiste protocol:

Versiebeheer en paginering:

Validatie en fouten:

Keuzes voor API-beheer:

Authenticatie en quota’s:

Minimaal API Gateway OpenAPI-voorbeeld met Cloud Run-backend en 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

Asynchrone Messaging en Eventing

Pub/Sub-fundamentals:

Maak een topic, subscription en DLQ aan:

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

Redenering voor de consumer: implementeer idempotente handlers en deduplicatie (bijv. op basis van messageId of een idempotency key op applicatieniveau); probeer tijdelijke fouten opnieuw met backoff; verplaats onherstelbare berichten naar de DLQ en stuur een alert.

Eventarc en CloudEvents:

Maak een Eventarc-trigger voor de finalisatie van een Cloud Storage-object:

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

Afwegingen:

Orkestratie, Achtergrondtaken en Langlopende Processen

Cloud Tasks:

Maak een queue aan met rate limits en retries:

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:

Schets van compensatie:

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}

Operationeel advies:

Identiteit, Betrouwbaarheid en Integraties

Service-naar-service identiteit en token-propagatie:

Een ID-token ophalen in 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"

Synchrone afhankelijkheden en veerkracht:

Webhooks en integraties met derden:

Schema-evolutie en compatibiliteit:

Beveiliging en quota’s door de hele stack:

Praktijkscenario

AcmeRetail bouwt een ‘click-to-collect’-dienst op Google Cloud. Een React-webapp roept een publieke API aan om bestellingen te plaatsen; backend-services moeten voorraad reserveren, betalingen verwerken en winkels informeren. Het team heeft low-latency API’s, betrouwbare achtergrondverwerking, event-driven updates en een veilige rollback bij gedeeltelijke mislukkingen nodig.

Aanpak:

  1. Bied een publieke REST API aan via API Gateway, geplaatst voor een Cloud Run ‘orders’-service.
  1. Implementeer service-naar-service-aanroepen met gRPC voor interne ‘hot paths’ (bestellingen naar voorraad, prijzen).
  1. Gebruik Workflows om de ‘order saga’ te orkestreren: betaling verwerken, voorraad reserveren, ophaaltaak aanmaken; compenseer bij een mislukking.
  1. Publiceer domein-events naar de Pub/Sub-topics ‘orders’ en ‘inventory’ voor downstream-consumenten (analytics, winkelnotificaties).
  1. Trigger winkelnotificaties via Eventarc naar een Cloud Run ’notifier’-service bij relevante wijzigingen in Cloud Storage en Firestore.
  1. Verwerk webhooks van de betalingsprovider met een speciaal Cloud Run-endpoint achter API Gateway, waarbij HMAC-signatures worden geverifieerd en Cloud Tasks wordt gebruikt voor de verwerking.
  1. Dwing betrouwbaarheidspatronen af: ‘circuit breakers’ op Apigee of Envoy voor uitgaande aanroepen naar de betalingsprovider; client-timeouts ingesteld onder de SLA’s van de provider; retries met ’truncated exponential backoff’ voor 429/5xx-fouten.
  1. Pas controles voor schema-evolutie toe: Protobuf voor interne gRPC met ‘reserved fields’; REST-responses gebruiken additieve JSON-wijzigingen; Pub/Sub gebruikt Protobuf-schemavalidatie op het moment van publiceren.
  1. Observeer en beheer: propageer trace-headers tussen API Gateway en services; exporteer Cloud Logging-metrics voor foutpercentages en DLQ-grootte; alarmeer bij ‘SLO burn’ en 429/5xx-anomalieën.

Compute · Alle domeinen · Applicatiedata

Oefen deze vragen → · Getimede oefening op 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.

Slaag voor je examen →

Blader door Google →

Related guides

Alles-in-één toegang

Eén abonnement. Elk examen.

Elk plan ontgrendelt onbeperkt zoeken naar antwoorden, oefentests, AI-uitleg en de volledige bronnenbibliotheek — in meer dan 20 talen.

Maandelijks
24.87
Just €0.83/day
Alles inbegrepen:
  • Onbeperkt zoeken naar antwoorden
  • Onbeperkte oefentests
  • AI-gestuurde uitleg
  • Volledige bronnenbibliotheek
  • 20+ talen
  • Wekelijkse contentupdates
  • Beloningen & verwijzingen
  • Prioriteitsondersteuning
Start gratis proefperiode

Geen creditcard vereist*

Beste waarde
12 maanden
179.87
Just €0.49/daySave 40%
Alles inbegrepen:
  • Onbeperkt zoeken naar antwoorden
  • Onbeperkte oefentests
  • AI-gestuurde uitleg
  • Volledige bronnenbibliotheek
  • 20+ talen
  • Wekelijkse contentupdates
  • Beloningen & verwijzingen
  • Prioriteitsondersteuning
Start gratis proefperiode

Geen creditcard vereist*

✓ Gratis plan inbegrepen · ✓ Annuleer op elk moment · ✓ Alle plannen ontgrendelen het volledige product