Tahap API Gateway dan konfigurasi runtime

Mengotomatisasi Deployment di AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Tiga URL, satu API

url

  • API checkout yang sama butuh dev, staging, dan prod
  • Tiap environment mengakses resource hilir yang berbeda
  • Hardcode nilai memaksa rebuild per environment
  • Variabel stage menyelesaikannya saat runtime
Mengotomatisasi Deployment di AWS

Apa itu stage API Gateway

api

  • Stage adalah deployment sebuah API
  • Tiap stage punya URL sendiri
  • Stage umum: dev, staging, prod
  • Satu definisi API, banyak stage
Mengotomatisasi Deployment di AWS

Mengapa stage penting untuk deployment

stages

  • Uji di dev tanpa mengganggu prod
  • Promosikan API yang sama lintas environment
  • Rollback satu stage tanpa menyentuh yang lain
  • Tiap stage melacak riwayat deployment sendiri
Mengotomatisasi Deployment di AWS

Variabel stage

  • Pair kunci-nilai khusus untuk satu stage
  • Referensi dengan ${stageVariables.varName}
  • Gunakan untuk konfigurasi per environment
  • Tak perlu ubah kode saat nilainya berbeda

variables

Mengotomatisasi Deployment di AWS

Variabel stage dalam praktik

  • checkout-api -> stage dev: lambdaAlias = dev
  • checkout-api -> stage prod: lambdaAlias = prod
  • Integrasi memanggil payments:${stageVariables.lambdaAlias}
  • Satu API mengakses dua alias Lambda berbeda

action

Mengotomatisasi Deployment di AWS

Nama domain kustom

  • URL default kurang bagus: abc123.execute-api.us-east-1.amazonaws.com/dev
  • Domain kustom: api.example.com
    • Butuh sertifikat ACM untuk TLS
  • Base path mapping mengaitkan path ke stage
    • api.example.com/v1 → stage prod

custom

Mengotomatisasi Deployment di AWS

Keterkaitannya

all

  • Variabel stage <-> alias Lambda dari video 2.3
  • Gagasan yang sama untuk versi ECS task definition dan nama tabel DynamoDB
  • Versi disetujui per environment, tanpa ubah kode
  • Bab 3 memperluas ini lintas layanan
Mengotomatisasi Deployment di AWS

Ayo berlatih!

Mengotomatisasi Deployment di AWS

Preparing Video For Download...