Lambda İşlevleri: Çalışma Zamanları, Tetikleyiciler ve İşleyiciler
Bir Lambda işlevi yazacak, çalışma zamanı seçecek, belleği ve zaman aşımını yapılandıracak ve bunu bir S3 olayı veya API Gateway tetikleyicisine bağlayacaksınız.
Lambda İşlevleri: Çalışma Zamanları, Tetikleyiciler ve İşleyiciler, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
AWS Lambda Nedir
AWS Lambda, sunucuları tedarik etmenizi veya yönetmenizi gerektirmeden olaylara yanıt olarak kodunuzu çalıştıran sunucusuz bir işlem hizmetidir. Yalnızca tüketilen işlem süresi için, milisaniye cinsinden ölçülerek ödeme yaparsınız; bu da Lambda'yı düzensiz, olay odaklı iş yükleri için son derece uygun maliyetli hâle getirir. Lambda, gelen olaylara göre sıfırdan eşzamanlı binlerce çalıştırmaya kadar otomatik olarak ölçeklenir.
Desteklenen Çalışma Zamanları
Lambda; Python, Node.js, Java, Go, Ruby, .NET ve daha fazlası dâhil olmak üzere yönetilen çalışma zamanlarını destekler. AWS bu çalışma zamanlarının bakımını yapar ve güvenlik yamalarını uygular. Yerel olarak desteklenmeyen diller veya çalışma zamanı sürümleri için bootstrap yürütülebilir dosyası aracılığıyla bir Özel Çalışma Zamanı sağlayabilir ya da işlevinizi ZIP dağıtım paketi yerine bir kapsayıcı imajı (en fazla 10 GB) olarak paketleyebilirsiniz.
Lambda İşleyici İşlevi
Her Lambda işlevinin, kodunuzun dışa aktarması gereken giriş noktası olan bir işleyicisi vardır. AWS, işleyiciyi iki bağımsız değişkenle çağırır: olay nesnesi (tetikleyiciden gelen girdi verileri) ve bağlam nesnesi (işlev adı, kalan süre ve istek kimliği gibi çağrıyla ilgili meta veriler). İşleyici, çağrı türüne bağlı olarak çağırana döndürülebilecek bir yanıt döndürür.
# 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'
}Bellek, Zaman Aşımı ve Geçici Depolama
Lambda, belleği 128 MB ile 10.240 MB arasında yapılandırmanıza olanak tanır. CPU, bellekle orantılı olarak tahsis edilir; daha fazla bellek, daha fazla CPU anlamına gelir. zaman aşımı 1 saniye ile 15 dakika arasında ayarlanabilir; işleviniz bu süreyi aşarsa Lambda işlevi sonlandırır. Ayrıca tek bir çağrı sırasında geçici dosyalar için /tmp geçici depolama alanına (varsayılan olarak 512 MB, 10 GB'a kadar yapılandırılabilir) sahip olursunuz. Bu depolama alanı çağrılar arasında kalıcı değildir.
Eş Zamanlı ve Eş Zamansız Çağrı
Lambda işlevleri eş zamanlı (çağıran sonuç için bekler; API Gateway ve ALB tarafından kullanılır) veya eş zamansız (çağıran beklemez; S3 olayları ve SNS tarafından kullanılır) olarak çağrılabilir. Eş zamansız modda Lambda, başarısız yürütmeleri iki kez yeniden dener ve başarısız olayları bir Ölü Mektup Kuyruğuna (SQS veya SNS) ya da bir EventBridge olay veri yoluna yönlendirebilir. Doğru çağrı modunun seçilmesi, hata işleme tasarımını etkiler.
Yaygın Lambda Tetikleyicileri
Lambda, olay kaynakları (tetikleyiciler) olarak onlarca AWS hizmetiyle yerel olarak bütünleşir:
- API Gateway / ALB: HTTP istekleri (eş zamanlı)
- S3: Nesne oluşturma/silme olayları (eş zamansız)
- DynamoDB Streams / Kinesis: Kayıt akışı (yoklama tabanlı, eş zamanlı)
- SQS: Kuyruk iletileri (yoklama tabanlı)
- SNS: Konu bildirimleri (eş zamansız)
- EventBridge: Zamanlanmış veya özel olaylar
- CloudWatch Logs: Günlük aboneliği filtreleri
IAM Yürütme Rolü
Her Lambda işlevinin, işlevin diğer AWS hizmetlerini çağırmasına izin veren bir IAM yürütme rolü olmalıdır. Örneğin, işleviniz S3'ten okuyor ve DynamoDB'ye yazıyorsa yürütme rolünün s3:GetObject ve dynamodb:PutItem izinlerine ihtiyacı vardır. En az ayrıcalık ilkesine uyun: yalnızca işlevinizin gerçekten ihtiyaç duyduğu izinleri verin. Temel yürütme rolü, CloudWatch Logs için logs:CreateLogGroup, logs:CreateLogStream ve logs:PutLogEvents izinlerini de içermelidir.
Dağıtım Paketleri ve Boyut Sınırları
Lambda iki dağıtım biçimini kabul eder: doğrudan veya S3 üzerinden yüklenen bir ZIP dosyası (sıkıştırılmış 50 MB, açılmış 250 MB) ve Amazon ECR'de depolanan bir konteyner görüntüsü (10 GB'a kadar). ZIP paketlerinin dağıtımı daha hızlıdır ve küçük işlevler ile Lambda Katmanları için uygundur. Konteyner görüntüleri, büyük bağımlılık kümeleri veya hâlihazırda Docker tabanlı iş akışları kullanan ekipler için idealdir. Her iki biçim de aynı çalışma zamanlarını ve işleyici düzenini kullanabilir.
# 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'Ortam Değişkenleri ve Gizli Bilgiler
Yapılandırmayı ortam değişkenleri aracılığıyla Lambda'ya iletin. Hassas değerleri (API anahtarları, veritabanı parolaları) AWS Secrets Manager veya Parameter Store içinde depolayın ve yürütme bağlamının yeniden kullanılmasından yararlanmak için bunları işlev başlatılırken (işleyicinin dışında) alın. Gizli bilgileri işlev kodunuza veya ortam değişkenlerine düz metin olarak kesinlikle sabitlemeyin; beklemedeyken korumak için Lambda ortam değişkenlerinde KMS şifrelemesini kullanın.
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
passSoğuk Başlatmalar ve Yürütme Bağlamının Yeniden Kullanımı
Bir Lambda işlevinin dağıtımdan sonra veya bir süre kullanılmadıktan sonraki ilk çağrısı soğuk başlatmaya neden olur: AWS'nin çalışma zamanı ortamını başlatması, dağıtım paketinizi indirmesi ve başlatma kodunu çalıştırması gerekir. Aynı yürütme ortamındaki sonraki çağrılar sıcak başlatmalardır ve çok daha hızlıdır. Yürütme bağlamını sıcak çağrılar arasında yeniden kullanmak için genel başlatma kodunu (SDK istemcileri, veritabanı bağlantıları) işleyicinin dışında tutun.
VPC'de Lambda
Varsayılan olarak Lambda, AWS tarafından yönetilen bir VPC'de çalışır ve internete erişebilir; ancak özel VPC kaynaklarınıza erişemez. Özel bir alt ağdaki RDS veritabanına veya ElastiCache kümesine erişmek için alt ağları ve güvenlik gruplarını belirterek Lambda'yı VPC'nizin içinde çalışacak şekilde yapılandırın. VPC etkin Lambda işlevleri ağ iletişimi için Hyperplane ENI'lerini kullanır (artık işlev başına ENI sağlama gerekmez); bu da VPC Lambda işlevlerindeki geçmiş soğuk başlatma cezasını ortadan kaldırır.
aws lambda update-function-configuration \
--function-name 'MyFunction' \
--vpc-config 'SubnetIds=subnet-aaa111,subnet-bbb222,SecurityGroupIds=sg-xyz'Kısa Kontrol
Bu dersteki AWS Solutions Architect (SAA-C03) kavramlarını anlayıp anlamadığınızı sınayın.
Ders Özeti
Bu derste şunları öğrendiniz: Lambda çalışma zamanları, gelişmiş durumlar için özel çalışma zamanları ve konteyner görüntüleriyle birlikte Python, Node.js, Java, Go ve daha fazlasını destekler; API Gateway (eş zamanlı) ile S3/SNS'yi (eş zamansız) içeren tetikleyiciler, olayların Lambda işlevlerine nasıl aktığını belirler; ayrıca yürütme rolü, ortam değişkenleri ve VPC yapılandırması, Lambda'yı diğer AWS hizmetlerine güvenli biçimde bağlamanın temel unsurlarıdır. Sırada Lambda eşzamanlılığını, kısıtlamayı ve ayrılmış eşzamanlılığı inceleyeceğiz.
Sıkça Sorulan Sorular
“Lambda İşlevleri: Çalışma Zamanları, Tetikleyiciler ve İşleyiciler” dersi ücretsiz mi?
Evet — “Lambda İşlevleri: Çalışma Zamanları, Tetikleyiciler ve İşleyiciler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.
“Lambda İşlevleri: Çalışma Zamanları, Tetikleyiciler ve İşleyiciler” dersinde ne öğreneceğim?
Bir Lambda işlevi yazacak, çalışma zamanı seçecek, belleği ve zaman aşımını yapılandıracak ve bunu bir S3 olayı veya API Gateway tetikleyicisine bağlayacaksınız. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Lambda İşlevleri: Çalışma Zamanları, Tetikleyiciler ve İşleyiciler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Lambda İşlevleri: Çalışma Zamanları, Tetikleyiciler ve İşleyiciler
- Eşzamanlılık, Kısıtlama ve Ayrılmış Eşzamanlılık
- Lambda Katmanları ve Dağıtım Paketleri
- Lambda@Edge ve Olay Güdümlü Desenler