Google PCD: API Tasarımı, Entegrasyon ve Olay Güdümlü Geliştirme — Çalışma kılavuzu

Şunun bir parçası: Google Professional Cloud Developer — Çalışma kılavuzu. Doğrulanmış cevaplarla şurada pratik yapın: Google sınav merkezi, veya şurada süreli deneme sınavları çözün: ExamRoll.io.

Genel Bakış

Google Cloud’da modern uygulama entegrasyonu, iyi tasarlanmış senkron API’leri, dayanıklı asenkron ve olay güdümlü desenlerle birleştirir. Amaç, net sözleşmeler, güçlü kimlik, tutarlı hata yönetimi ve operasyonel kontroller sağlamaktır; bu sayede hata, ölçeklenme veya değişiklik durumlarında bile gecikme süresi düşük, kullanılabilirlik ise yüksek tutulur. Bu bölüm; protokol ve API seçimlerini, ağ geçitlerini ve kimlik doğrulamayı, mesajlaşma ve olay yönlendirmeyi, arka plan işlerini, orkestrasyonu, servisler arası kimlik ve güveni, güvenilirlik desenlerini, güvenli webhook’ları ve güvenli şema evrimini kapsar.

API Tasarımı ve Yönetimi

Doğru protokolü seçin:

Sürümleme ve sayfalama:

Doğrulama ve hatalar:

API yönetim seçenekleri:

Kimlik doğrulama ve kotalar:

Cloud Run arka ucu ve OIDC ile minimal bir API Gateway OpenAPI örneği:

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

Asenkron Mesajlaşma ve Olay Yönetimi

Pub/Sub temelleri:

Topic, subscription ve DLQ oluşturma:

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

Tüketici mantığı: bir kez etkili (idempotent) işleyiciler ve tekilleştirme (örneğin, messageId veya uygulama düzeyinde bir idempotency anahtarı ile) uygulayın; geçici hataları geri çekilme (backoff) ile yeniden deneyin; kurtarılamayan mesajları DLQ’ya taşıyın ve uyarı oluşturun.

Eventarc ve CloudEvents:

Cloud Storage nesne sonlandırması için bir Eventarc tetikleyicisi oluşturma:

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

Dezavantajları:

Orkestrasyon, Arka Plan İşleri ve Uzun Süren Süreçler

Cloud Tasks:

Hız limitleri ve yeniden denemelerle bir kuyruk oluşturma:

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:

Telafi taslağı:

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}

Operasyonel rehberlik:

Kimlik, Güvenilirlik ve Entegrasyonlar

Servisten servise kimlik ve token yayılımı:

Cloud Run’da bir ID token alma:

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"

Senkron bağımlılıklar ve dayanıklılık:

Webhook’lar ve üçüncü taraf entegrasyonları:

Şema evrimi ve uyumluluk:

Yığın genelinde güvenlik ve kotalar:

Pratik Problem Senaryosu

AcmeRetail, Google Cloud üzerinde bir tıkla-gel al servisi oluşturuyor. Bir React web uygulaması, sipariş vermek için halka açık bir API’yi çağırıyor; arka uç servisleri envanteri rezerve etmeli, ödemeleri almalı ve mağazaları bilgilendirmelidir. Ekibin düşük gecikmeli API’lere, güvenilir arka plan işlemlerine, olay güdümlü güncellemelere ve kısmi hatalarda güvenli geri alma (rollback) mekanizmalarına ihtiyacı var.

Yaklaşım:

  1. Bir Cloud Run sipariş servisinin önünde API Gateway aracılığıyla halka açık bir REST API sunun.
  1. Dahili sıcak yollar (hot path) için (siparişlerden envantere, fiyatlandırmaya) servisten servise çağrıları gRPC ile uygulayın.
  1. Sipariş sagasını (order saga) düzenlemek için Workflows kullanın: ödemeyi al, envanteri rezerve et, teslim alma görevi oluştur; hata durumunda telafi et.
  1. Alan (domain) olaylarını, aşağı akış (downstream) tüketicileri (analitik, mağaza bildirimleri) için orders ve inventory adlı Pub/Sub konularına yayınlayın.
  1. İlgili Cloud Storage ve Firestore değişikliklerinde, Eventarc aracılığıyla bir Cloud Run bildirim servisine mağaza bildirimlerini tetikleyin.
  1. Ödeme sağlayıcısının webhook’larını, API Gateway’in önünde duran özel bir Cloud Run uç noktasıyla ele alın; HMAC imzalarını doğrulayın ve işleme için Cloud Tasks kullanın.
  1. Güvenilirlik desenlerini uygulayın: ödeme sağlayıcısına yapılan giden çağrılar için Apigee veya Envoy’da devre kesiciler (circuit breakers); sağlayıcı SLA’larının altında ayarlanmış istemci zaman aşımları; 429/5xx hataları için kesilmiş üstel geri çekilme (truncated exponential backoff) ile yeniden denemeler.
  1. Şema evrimi kontrollerini benimseyin: ayrılmış (reserved) alanlara sahip dahili gRPC için Protobuf; REST yanıtları eklemeli JSON değişiklikleri kullanır; Pub/Sub, yayınlama zamanında Protobuf şema doğrulaması kullanır.
  1. Gözlemleyin ve işletin: API Gateway ve servisler arasında izleme başlıklarını (trace headers) yayın; hata oranları ve DLQ boyutu için Cloud Logging metriklerini dışa aktarın; SLO yanması (burn) ve 429/5xx anormalliklerinde uyarı verin.

İşlem · Tüm alanlar · Uygulama Verisi

Bu soruları çözün → · ExamRoll.io’da süreli pratik →

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.

Sınavınızı geçin →

Google'a göz atın →

Related guides

Hepsi bir arada erişim

Tek abonelik. Her sınav.

Her plan, sınırsız cevap aramayı, pratik testlerini, AI açıklamalarını ve tam kaynak kütüphanesini — 20'den fazla dilde — açar.

Aylık
24.87
Just €0.83/day
Her şey dahil:
  • Sınırsız cevap arama
  • Sınırsız pratik testi
  • AI destekli açıklamalar
  • Tam kaynak kütüphanesi
  • 20+ dil
  • Haftalık içerik güncellemeleri
  • Ödüller ve yönlendirmeler
  • Öncelikli destek
Ücretsiz denemeyi başlat

Kredi kartı gerekmez*

En iyi değer
12 ay
179.87
Just €0.49/daySave 40%
Her şey dahil:
  • Sınırsız cevap arama
  • Sınırsız pratik testi
  • AI destekli açıklamalar
  • Tam kaynak kütüphanesi
  • 20+ dil
  • Haftalık içerik güncellemeleri
  • Ödüller ve yönlendirmeler
  • Öncelikli destek
Ücretsiz denemeyi başlat

Kredi kartı gerekmez*

✓ Ücretsiz plan dahil · ✓ İstediğiniz zaman iptal edin · ✓ Tüm planlar tam ürünü açar