Fungsi Lambda: Waktu Proses, Pemicu, dan Penangan
Tulis fungsi Lambda, pilih waktu proses, konfigurasikan memori dan batas waktu, lalu hubungkan ke peristiwa S3 atau pemicu API Gateway.
Fungsi Lambda: Waktu Proses, Pemicu, dan Penangan adalah pelajaran AWS Solutions Architect gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar AWS Solutions Architect, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus AWS Solutions Architect mencakup 4 pelajaran total.
Apa Itu AWS Lambda?
AWS Lambda adalah layanan komputasi tanpa server yang menjalankan kode Anda sebagai respons terhadap peristiwa tanpa mengharuskan Anda menyediakan atau mengelola server. Anda hanya membayar waktu komputasi yang digunakan—diukur dalam milidetik—sehingga Lambda sangat hemat biaya untuk beban kerja sporadis yang digerakkan oleh peristiwa. Lambda secara otomatis meningkatkan skala dari nol hingga ribuan eksekusi bersamaan berdasarkan peristiwa yang masuk.
Runtime yang Didukung
Lambda mendukung runtime terkelola, termasuk Python, Node.js, Java, Go, Ruby, .NET, dan lainnya. AWS memelihara runtime ini serta menerapkan patch keamanan. Untuk bahasa atau versi runtime yang tidak didukung secara bawaan, Anda dapat menyediakan runtime khusus melalui berkas executable bootstrap, atau mengemas fungsi Anda dalam citra kontainer (hingga 10 GB), bukan sebagai paket deployment ZIP.
Fungsi Handler Lambda
Setiap fungsi Lambda memiliki handler—titik masuk yang harus diekspor oleh kode Anda. AWS memanggil handler dengan dua argumen: objek event (data input dari pemicu) dan objek context (metadata tentang pemanggilan, seperti nama fungsi, waktu tersisa, dan ID permintaan). Handler mengembalikan respons yang, bergantung pada jenis pemanggilan, mungkin dikembalikan kepada pemanggil.
# Python handler example
def lambda_handler(event, context):
# event contains the trigger payload
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
print(f'Processing {key} from {bucket}')
return {
'statusCode': 200,
'body': 'Processed successfully'
}Memori, Batas Waktu, dan Penyimpanan Sementara
Lambda memungkinkan Anda mengonfigurasi memori dari 128 MB hingga 10.240 MB. CPU dialokasikan secara proporsional terhadap memori—semakin besar memori, semakin besar CPU. batas waktu dapat diatur dari 1 detik hingga 15 menit; jika fungsi Anda melampaui batas ini, Lambda akan menghentikannya. Anda juga mendapatkan penyimpanan sementara /tmp (512 MB secara default, dapat dikonfigurasi hingga 10 GB) untuk file sementara dalam satu pemanggilan. Penyimpanan ini tidak bertahan di antara pemanggilan.
Pemanggilan Sinkron vs Asinkron
Fungsi Lambda dapat dipanggil secara sinkron (pemanggil menunggu hasil—digunakan oleh API Gateway dan ALB) atau secara asinkron (pemanggil tidak menunggu—digunakan oleh peristiwa S3 dan SNS). Dalam mode asinkron, Lambda mencoba kembali eksekusi yang gagal hingga dua kali dan dapat mengarahkan peristiwa yang gagal ke Antrean Surat Mati (SQS atau SNS) atau bus peristiwa EventBridge. Pemilihan mode pemanggilan yang tepat memengaruhi rancangan penanganan kesalahan.
Pemicu Lambda yang Umum
Lambda terintegrasi secara bawaan dengan puluhan layanan AWS sebagai sumber peristiwa (pemicu):
- API Gateway / ALB: permintaan HTTP (sinkron)
- S3: peristiwa pembuatan/penghapusan objek (asinkron)
- Aliran DynamoDB / Kinesis: pengaliran catatan (berbasis pemungutan, sinkron)
- SQS: pesan antrean (berbasis pemungutan)
- SNS: notifikasi topik (asinkron)
- EventBridge: peristiwa terjadwal atau khusus
- Log CloudWatch: filter langganan log
Peran Eksekusi IAM
Setiap fungsi Lambda harus memiliki peran eksekusi IAM yang memberikan izin kepada fungsi untuk memanggil layanan AWS lainnya. Misalnya, jika fungsi Anda membaca dari S3 dan menulis ke DynamoDB, peran eksekusi tersebut memerlukan izin s3:GetObject dan dynamodb:PutItem. Terapkan prinsip hak akses minimum: berikan hanya izin yang benar-benar diperlukan oleh fungsi Anda. Peran eksekusi dasar juga harus menyertakan logs:CreateLogGroup, logs:CreateLogStream, dan logs:PutLogEvents untuk Log CloudWatch.
Paket Penerapan dan Batas Ukuran
Lambda menerima dua format penerapan: file ZIP (50 MB terkompresi, 250 MB setelah diekstrak) yang diunggah langsung atau melalui S3, dan citra kontainer (hingga 10 GB) yang disimpan di Amazon ECR. Paket ZIP lebih cepat diterapkan dan cocok untuk fungsi kecil serta Lapisan Lambda. Citra kontainer ideal untuk kumpulan dependensi yang besar atau tim yang sudah menggunakan alur kerja berbasis Docker. Kedua format dapat menggunakan runtime yang sama dan pola handler yang sama.
# Deploy a ZIP package from S3
aws lambda update-function-code \
--function-name 'MyFunction' \
--s3-bucket 'my-lambda-packages' \
--s3-key 'my-function-v2.zip'Variabel Lingkungan dan Rahasia
Teruskan konfigurasi ke Lambda melalui variabel lingkungan. Untuk nilai sensitif (kunci API, kata sandi basis data), simpan nilai tersebut di AWS Secrets Manager atau Parameter Store, lalu ambil saat inisialisasi fungsi (di luar handler) agar dapat memanfaatkan penggunaan kembali konteks eksekusi. Jangan pernah menulis rahasia secara langsung di kode fungsi atau menyimpan variabel lingkungan dalam teks biasa—gunakan enkripsi KMS untuk variabel lingkungan Lambda guna melindunginya saat tersimpan.
import boto3
import os
# Fetch secret once during cold start (outside handler)
ssm = boto3.client('ssm')
DB_PASSWORD = ssm.get_parameter(
Name=os.environ['DB_PASSWORD_PARAM'],
WithDecryption=True
)['Parameter']['Value']
def lambda_handler(event, context):
# DB_PASSWORD is already loaded; no SSM call on each invocation
passCold Start dan Penggunaan Kembali Konteks Eksekusi
Pemanggilan pertama fungsi Lambda setelah penerapan atau setelah periode tidak aktif menimbulkan cold start: AWS harus menginisialisasi lingkungan runtime, mengunduh paket penerapan, dan menjalankan kode inisialisasi. Pemanggilan berikutnya dalam lingkungan eksekusi yang sama merupakan warm start dan jauh lebih cepat. Letakkan kode inisialisasi global (klien SDK, koneksi DB) di luar handler agar konteks eksekusi dapat digunakan kembali pada pemanggilan hangat.
Lambda dalam VPC
Secara default, Lambda berjalan dalam VPC yang dikelola AWS dan dapat mengakses internet, tetapi tidak dapat mengakses sumber daya VPC privat Anda. Untuk mengakses basis data RDS atau klaster ElastiCache dalam subnet privat, konfigurasikan Lambda agar berjalan di dalam VPC Anda dengan menentukan subnet dan grup keamanan. Fungsi Lambda yang mendukung VPC menggunakan ENI Hyperplane untuk jaringan (tidak ada lagi penyediaan ENI per fungsi), sehingga menghilangkan penalti cold start historis untuk Lambda VPC.
aws lambda update-function-configuration \
--function-name 'MyFunction' \
--vpc-config 'SubnetIds=subnet-aaa111,subnet-bbb222,SecurityGroupIds=sg-xyz'Pemeriksaan Singkat
Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) dari pelajaran ini.
Rangkuman Pelajaran
Dalam pelajaran ini Anda mempelajari bahwa runtime Lambda mendukung Python, Node.js, Java, Go, dan lainnya, dengan runtime khusus serta citra kontainer untuk kasus lanjutan; pemicu, termasuk API Gateway (sinkron) dan S3/SNS (asinkron), menentukan bagaimana peristiwa mengalir ke fungsi Lambda; serta peran eksekusi, variabel lingkungan, dan konfigurasi VPC merupakan aspek penting untuk menghubungkan Lambda ke layanan AWS lainnya secara aman. Selanjutnya, kita akan membahas konkurensi Lambda, pembatasan, dan konkurensi yang dicadangkan.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Fungsi Lambda: Waktu Proses, Pemicu, dan Penangan” gratis?
Ya — teks lengkap “Fungsi Lambda: Waktu Proses, Pemicu, dan Penangan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus AWS Solutions Architect, upgrade ke CoddyKit PRO. Kursus AWS Solutions Architect mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Fungsi Lambda: Waktu Proses, Pemicu, dan Penangan”?
Tulis fungsi Lambda, pilih waktu proses, konfigurasikan memori dan batas waktu, lalu hubungkan ke peristiwa S3 atau pemicu API Gateway. Kamu berlatih AWS Solutions Architect dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai AWS Solutions Architect?
Tidak diperlukan pengalaman sebelumnya. AWS Solutions Architect di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Fungsi Lambda: Waktu Proses, Pemicu, dan Penangan” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran AWS Solutions Architect ini?
Ya. Setiap pelajaran AWS Solutions Architect menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Fungsi Lambda: Waktu Proses, Pemicu, dan Penangan
- Konkruensi, Pembatasan, dan Konkruensi Terreservasi
- Lapisan Lambda dan Paket Penerapan
- Lambda@Edge dan Pola Berbasis Peristiwa