Google PCD: Conception d'API, intégration et développement piloté par les événements — Guide d'étude

Fait partie du Google Professional Cloud Developer — Guide d’étude. Entraînez-vous avec des réponses vérifiées dans le centre d’examens Google, ou passez des tests chronométrés sur ExamRoll.io.

Vue d’ensemble

L’intégration d’applications modernes sur Google Cloud combine des API synchrones bien conçues avec des modèles asynchrones et événementiels résilients. L’objectif est de fournir des contrats clairs, une identité forte, une gestion cohérente des erreurs et des contrôles opérationnels qui maintiennent une faible latence et une haute disponibilité, même en cas de panne, de mise à l’échelle ou de changement. Cette section couvre les choix de protocoles et d’API, les passerelles et l’authentification, la messagerie et le routage d’événements, les tâches d’arrière-plan, l’orchestration, l’identité et la confiance entre les services, les modèles de fiabilité, les webhooks sécurisés et l’évolution sûre des schémas.

Conception et gestion des API

Choisir le bon protocole :

Versionnement et pagination :

Validation et erreurs :

Choix de gestion d’API :

Authentification et quotas :

Exemple minimal d’OpenAPI pour API Gateway avec un backend Cloud Run et 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

Messagerie asynchrone et gestion d’événements

Principes fondamentaux de Pub/Sub :

Créer un sujet, un abonnement et une 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

Logique du consommateur : implémenter des gestionnaires idempotents et un dédoublonnage (ex. : par messageId ou clé d’idempotence au niveau applicatif) ; réessayer les erreurs transitoires avec un temps d’attente exponentiel (backoff) ; déplacer les messages non récupérables vers la DLQ et alerter.

Eventarc et CloudEvents :

Créer un déclencheur Eventarc pour la finalisation d’un objet 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

Compromis :

Orchestration, tâches d’arrière-plan et processus de longue durée

Cloud Tasks :

Créer une file d’attente avec des limites de débit et des tentatives :

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 :

Ébauche de compensation :

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}

Recommandations opérationnelles :

Identité, fiabilité et intégrations

Identité de service à service et propagation de jetons :

Récupérer un jeton d’ID dans 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"

Dépendances synchrones et résilience :

Webhooks et intégrations tierces :

Évolution des schémas et compatibilité :

Sécurité et quotas à travers la pile (stack) :

Scénario de problème pratique

AcmeRetail construit un service de click-and-collect sur Google Cloud. Une application web React appelle une API publique pour passer des commandes ; les services backend doivent réserver l’inventaire, effectuer les paiements et notifier les magasins. L’équipe a besoin d’API à faible latence, de traitements en arrière-plan fiables, de mises à jour événementielles et d’une restauration (rollback) sûre en cas d’échecs partiels.

Approche :

  1. Exposer une API REST publique via API Gateway devant un service de commandes sur Cloud Run.
  1. Implémenter les appels de service à service avec gRPC pour les chemins critiques internes (commandes vers inventaire, tarification).
  1. Utiliser Workflows pour orchestrer la saga de commande : débiter le paiement, réserver l’inventaire, créer une tâche de retrait ; compenser en cas d’échec.
  1. Publier des événements de domaine (domain events) sur les sujets Pub/Sub orders et inventory pour les consommateurs en aval (analytique, notifications aux magasins).
  1. Déclencher des notifications aux magasins via Eventarc vers un service de notification sur Cloud Run lors de changements pertinents dans Cloud Storage et Firestore.
  1. Gérer les webhooks du fournisseur de paiement avec un point de terminaison (endpoint) Cloud Run dédié, précédé par API Gateway, en vérifiant les signatures HMAC et en utilisant Cloud Tasks pour le traitement.
  1. Appliquer des modèles de fiabilité : disjoncteurs (circuit breakers) au niveau d’Apigee ou d’Envoy pour les appels sortants vers le fournisseur de paiement ; délais d’attente client définis en dessous des SLA du fournisseur ; nouvelles tentatives avec backoff exponentiel tronqué pour les erreurs 429/5xx.
  1. Adopter des contrôles d’évolution de schéma : Protobuf pour le gRPC interne avec des champs réservés ; les réponses REST utilisent des changements JSON additifs ; Pub/Sub utilise la validation de schéma Protobuf au moment de la publication.
  1. Observer et opérer : propager les en-têtes de traçage entre API Gateway et les services ; exporter les métriques de Cloud Logging pour les taux d’erreur et la taille de la DLQ ; alerter sur l’épuisement du budget d’erreur (SLO burn) et les anomalies 429/5xx.

Calcul · Tous les domaines · Données d’application

Entraînez-vous sur ces questions → · Tests chronométrés sur 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.

Réussissez votre examen →

Parcourir Google →

Related guides

Accès tout-en-un

Un seul abonnement. Chaque examen.

Chaque plan débloque la recherche de réponses illimitée, les tests pratiques, les explications IA et la bibliothèque complète de ressources — en plus de 20 langues.

Mensuel
24.87
Just €0.83/day
Tout inclus :
  • Recherche de réponses illimitée
  • Tests pratiques illimités
  • Explications basées sur l'IA
  • Bibliothèque complète de ressources
  • Plus de 20 langues
  • Mises à jour de contenu hebdomadaires
  • Récompenses et parrainages
  • Support prioritaire
Commencer l'essai gratuit

Aucune carte de crédit requise*

Meilleur rapport qualité/prix
12 mois
179.87
Just €0.49/daySave 40%
Tout inclus :
  • Recherche de réponses illimitée
  • Tests pratiques illimités
  • Explications basées sur l'IA
  • Bibliothèque complète de ressources
  • Plus de 20 langues
  • Mises à jour de contenu hebdomadaires
  • Récompenses et parrainages
  • Support prioritaire
Commencer l'essai gratuit

Aucune carte de crédit requise*

✓ Plan gratuit inclus · ✓ Annulez à tout moment · ✓ Tous les plans débloquent le produit complet