Menguji dan menerapkan API Anda

Mengembangkan Aplikasi di AWS

Ricardo Sueiras

Principal Technologist

Infrastructure-as-Code untuk pengembang

 

iac

  • Aplikasi cloud native diterapkan dengan Infrastructure-as-Code (IaC).
  • Definisikan sumber daya cloud dalam file konfigurasi.
  • Menghindari penyiapan manual di AWS Management Console (clickops).
Mengembangkan Aplikasi di AWS

AWS CloudFormation

 

cloudformation

  • Layanan IaC dasar di AWS.
  • Definisikan sumber daya AWS dengan templat YAML atau JSON.
Mengembangkan Aplikasi di AWS

AWS Cloud Development Kit (CDK)

 

cdk

  • CDK mendefinisikan IaC dengan kode.
  • Tulis dengan Python, TypeScript, atau Java alih-alih YAML atau JSON.
  • Aplikasi disintesis menjadi templat CloudFormation saat deploy.
Mengembangkan Aplikasi di AWS

AWS Serverless Application Model (SAM)

  • Memperluas CloudFormation.
  • Sintaks sederhana untuk sumber daya serverless dan API.
  • Bertindak sebagai lapisan transformasi.
  • Menerjemahkan sintaks SAM ke templat CloudFormation lengkap.

 

sam

Mengembangkan Aplikasi di AWS

Fitur SAM

  • Menghasilkan peran IAM least-privilege otomatis, bisa disetel lanjut.
  • Definisikan pipeline penerapan sebagai konfigurasi.
  • Kemas dan terapkan dengan sam build dan sam deploy.
  • Tangkap kesalahan templat lebih awal dengan sam validate.
  • Emulasikan Lambda secara lokal dengan sam local start-lambda.
    • Menyediakan endpoint lokal persisten

 

sam features

Mengembangkan Aplikasi di AWS

Pengujian dengan SAM

  • Bangun, panggil, dan uji aplikasi serverless secara lokal sebelum deploy.
  • Uji fungsi Lambda dan integrasi API Gateway.
  • Panggil fungsi secara lokal dengan sam local invoke.
    • Satu kali pemanggilan
  • Emulasikan API Gateway dengan sam local start-api.

 

testing with sam

Mengembangkan Aplikasi di AWS

Uji unit

 

unit tests

  • Gunakan SAM dengan uji unit untuk memvalidasi perilaku Lambda.
  • Pengujian lokal mempercepat siklus pengembangan.
  • Pasangkan dengan kerangka seperti pytest, JUnit, atau Jest.
Mengembangkan Aplikasi di AWS

Alur kerja pengujian

 

test workflow

  • Hasilkan event uji dengan sam local generate-event.
  • Menghasilkan file event JSON.
  • Panggil lokal dengan sam local invoke FunctionName -e event.json.
  • Tambahkan asersi kerangka kerja untuk memverifikasi respons sebelum deploy.
Mengembangkan Aplikasi di AWS

Mocking layanan AWS

 

mocking tests

  • Gabungkan pengujian lokal dengan pustaka mocking seperti moto.
  • Berinteraksi dengan layanan AWS tersimulasi, tanpa panggilan nyata.
  • Meningkatkan kecepatan uji.
  • Mengurangi biaya pengujian.
  • Memvalidasi skenario error seperti throttling atau kegagalan.
Mengembangkan Aplikasi di AWS

Continuous integration dan continuous deployment (CI/CD)

  • Aplikasi SAM umumnya diterapkan lewat pipeline CI/CD.
  • Otomatiskan build, uji, paket, dan deploy.
  • AWS CodeCommit menyimpan kode dan templat SAM.
  • AWS CodeBuild menjalankan uji dan sam build.
  • AWS CodePipeline mengorkestrasi alur kerja.

 

cicd

Mengembangkan Aplikasi di AWS

Alur kerja CI/CD

  • Commit kode sumber dan templat SAM ke repo.
  • Jalankan uji dan validasi otomatis.
  • Kemas aplikasi dengan sam build.
  • Terapkan sumber daya dengan sam deploy.
  • Pantau pascadeploy dengan CloudWatch.

 

workflow

Mengembangkan Aplikasi di AWS

Memecahkan masalah penerapan

  troubleshooting

  • Pemecahan masalah adalah keterampilan operasional utama.
  • Kegagalan deploy umum:
  • Masalah izin IAM.
  • Templat SAM atau CloudFormation tidak valid.
  • Paket Lambda gagal atau dependensi hilang.
  • Konfigurasi API Gateway tidak benar.
Mengembangkan Aplikasi di AWS

Memecahkan masalah penerapan

  troubleshooting

  • Deploy SAM berjalan di atas CloudFormation.
  • Menyediakan event stack dan rollback otomatis.
  • Membantu mengidentifikasi kegagalan deploy.
  • Melakukan rollback untuk mengembalikan status lingkungan sebelumnya.
Mengembangkan Aplikasi di AWS

Memecahkan masalah penerapan

  troubleshooting

  • Pecahkan masalah menggunakan:
  • CloudWatch Logs.
  • Log eksekusi API Gateway.
  • Log Lambda.
  • Metrik CloudWatch.
Mengembangkan Aplikasi di AWS

Ayo berlatih!

Mengembangkan Aplikasi di AWS

Preparing Video For Download...