Google PCD: Progettazione di API, integrazione e sviluppo guidato dagli eventi — Guida allo studio

Fa parte della Google Professional Cloud Developer — Guida allo studio. Esercitati con risposte verificate nel centro esami Google, oppure fai test cronometrati su ExamRoll.io.

Panoramica

L’integrazione di applicazioni moderne su Google Cloud combina API sincrone ben progettate con pattern asincroni e event-driven resilienti. L’obiettivo è fornire contratti chiari, identità forte, gestione degli errori coerente e controlli operativi che mantengano bassa la latenza e alta la disponibilità anche in caso di guasti, scaling o cambiamenti. Questa sezione tratta le scelte di protocolli e API, gateway e autenticazione, messaggistica e routing degli eventi, lavoro in background, orchestrazione, identità e trust tra servizi, pattern di affidabilità, webhook sicuri e l’evoluzione sicura degli schemi.

Progettazione e Gestione delle API

Scegliere il protocollo giusto:

Versioning e paginazione:

Validazione ed errori:

Scelte per la gestione delle API:

Autenticazione e quote:

Esempio minimo di OpenAPI per API Gateway con backend 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

Messaggistica Asincrona ed Eventing

Fondamenti di Pub/Sub:

Creare topic, sottoscrizione e 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

Logica del consumer: implementare handler idempotenti e deduplicazione (es. tramite messageId o una chiave di idempotenza a livello di applicazione); ritentare gli errori transitori con backoff; spostare i messaggi irrecuperabili nella DLQ e generare un alert.

Eventarc e CloudEvents:

Creare un trigger Eventarc per la finalizzazione di un oggetto in 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

Compromessi:

Orchestrazione, Lavoro in Background e Processi a Lunga Esecuzione

Cloud Tasks:

Creare una coda con limiti di velocità e tentativi di re-invio:

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:

Bozza di compensazione:

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}

Guida operativa:

Identità, Affidabilità e Integrazioni

Identità service-to-service e propagazione dei token:

Ottenere un token ID 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"

Dipendenze sincrone e resilienza:

Webhook e integrazioni con terze parti:

Evoluzione dello schema e compatibilità:

Sicurezza e quote lungo tutto lo stack:

Scenario Pratico

AcmeRetail sta costruendo un servizio “clicca e ritira” (click-to-collect) su Google Cloud. Un’app web React chiama un’API pubblica per inserire gli ordini; i servizi di backend devono riservare l’inventario, addebitare i pagamenti e notificare i negozi. Il team necessita di API a bassa latenza, elaborazione in background affidabile, aggiornamenti event-driven e rollback sicuro in caso di fallimenti parziali.

Approccio:

  1. Esporre un’API REST pubblica tramite API Gateway davanti a un servizio di ordini su Cloud Run.
  1. Implementare le chiamate service-to-service con gRPC per i percorsi critici (hot path) interni (dagli ordini all’inventario, al pricing).
  1. Usare Workflows per orchestrare la saga dell’ordine: addebitare il pagamento, riservare l’inventario, creare il task di ritiro; eseguire compensazioni in caso di fallimento.
  1. Pubblicare eventi di dominio su topic Pub/Sub orders e inventory per i consumer a valle (downstream) (analytics, notifiche ai negozi).
  1. Attivare le notifiche ai negozi tramite Eventarc verso un servizio di notifica su Cloud Run in base a modifiche pertinenti su Cloud Storage e Firestore.
  1. Gestire i webhook del provider di pagamento con un endpoint Cloud Run dedicato, protetto da API Gateway, verificando le firme HMAC e usando Cloud Tasks per l’elaborazione.
  1. Applicare pattern di affidabilità: circuit breaker su Apigee o Envoy per le chiamate in uscita verso il provider di pagamento; timeout del client impostati al di sotto degli SLA del provider; retry con backoff esponenziale troncato per errori 429/5xx.
  1. Adottare controlli per l’evoluzione dello schema: Protobuf per gRPC interno con campi riservati; le risposte REST usano modifiche JSON additive; Pub/Sub usa la validazione dello schema Protobuf al momento della pubblicazione.
  1. Osservare e operare: propagare gli header di tracciamento tra API Gateway e i servizi; esportare le metriche di Cloud Logging per i tassi di errore e la dimensione della DLQ; impostare alert sul burn rate degli SLO e su anomalie 429/5xx.

Piattaforme di runtime Compute · Tutti i domini · Dati delle applicazioni

Esercitati su queste domande → · Pratica cronometrata su 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.

Supera l'esame →

Sfoglia Google →

Related guides

Accesso tutto incluso

Un abbonamento. Ogni esame.

Ogni piano sblocca la ricerca illimitata di risposte, test pratici, spiegazioni AI e la libreria completa di risorse — in oltre 20 lingue.

Mensile
24.87
Just €0.83/day
Tutto incluso:
  • Ricerca risposte illimitata
  • Test pratici illimitati
  • Spiegazioni basate su AI
  • Libreria completa di risorse
  • Oltre 20 lingue
  • Aggiornamenti settimanali dei contenuti
  • Premi e referral
  • Supporto prioritario
Inizia la prova gratuita

Nessuna carta di credito richiesta*

Miglior valore
12 mesi
179.87
Just €0.49/daySave 40%
Tutto incluso:
  • Ricerca risposte illimitata
  • Test pratici illimitati
  • Spiegazioni basate su AI
  • Libreria completa di risorse
  • Oltre 20 lingue
  • Aggiornamenti settimanali dei contenuti
  • Premi e referral
  • Supporto prioritario
Inizia la prova gratuita

Nessuna carta di credito richiesta*

✓ Piano gratuito incluso · ✓ Annulla in qualsiasi momento · ✓ Tutti i piani sbloccano il prodotto completo