AWS Lambda Hakkında SSS

Genel

AWS Lambda, sunucuları tedarik etmeden veya yönetmeden kod çalıştırmanıza olanak tanır. Yalnızca kullandığınız işlem süresi için ödeme yaparsınız; kodunuzun çalışmadığı zamanlar için ödeme alınmaz. Lambda ile, hiçbir yönetim işlemi gerekmeden hemen her tür uygulama veya arka uç hizmeti için kod çalıştırabilirsiniz. Kodunuzu yüklemeniz yeterlidir. Lambda, kodunuzu yüksek erişilebilirlikle çalıştırmak ve ölçeklemek için gereken her şeyle ilgilenir. Kodunuzu diğer AWS hizmetlerinden otomatik olarak tetiklenecek şekilde ayarlayabilir veya bu hizmeti doğrudan web'den veya mobil uygulamadan çağırabilirsiniz.

Sunucusuz bilgi işlem, sunucuları düşünmek zorunda kalmadan uygulamalar ve hizmetler oluşturup çalıştırmanızı sağlar. Sunucusuz bilişimde uygulamanız yine sunucularda çalışır ancak sunucuların yönetimi AWS tarafından gerçekleştirilir. Sunucusuz bilişimin merkezinde, sunucuları tedarik etmenize veya yönetmenize gerek kalmadan kodunuzu çalıştırmanızı sağlayan AWS Lambda yer alır.

Olay kaynaklarının tam listesi için lütfen belgelerimizi inceleyin.

Amazon Web Services, farklı ihtiyaçları karşılamak için farklı bilişim hizmetleri sunar.

Amazon EC2, farklı bulut sunucusu türlerinin yanı sıra işletim sistemi, ağ ve güvenlik ayarlarını özelleştirme seçeneğiyle birlikte var olan uygulamaları buluta kolayca taşımanızı sağlayan tam bir yazılım yığını ile esneklik sunar. Amazon EC2 ile kapasite tedarik etme, sunucuların durumunu ve performansını izleme ile hata toleransı ve ölçeklenebilirlik için gerekli tasarımları yapma sizin sorumluluğunuzda olur. AWS Elastic Beanstalk, web uygulamalarının dağıtılması ve ölçeklendirilmesi için arka plandaki EC2 bulut sunucularının sahipliğini ve tam denetimini elinizde bulundurduğunuz kullanımı kolay bir hizmet sunar. Amazon EC2 Container Hizmeti, Docker container'larını destekleyen ve yönetilen bir Amazon EC2 bulut sunucuları kümesinde, dağıtılmış uygulamaları kolayca çalıştırmanıza olanak sağlayan, ölçeklenebilir bir container yönetimi hizmetidir.

AWS Lambda; Amazon S3 klasörlerinde gerçekleştirilen değişiklikler, bir Amazon DynamoDB tablosunda yapılan güncellemeler veya uygulamalarınız ya da cihazlarınız tarafından oluşturulan özel olaylar gibi durumlara yanıt olarak kod yürütmeyi kolaylaştırır. Lambda'yı kullandığınızda kendi bulut sunucularınızı tedarik etmenize gerek kalmaz. Lambda; kapasite tedarik etme, sistem durumunu izleme, arka plandaki işlem kaynaklarına güvenlik düzeltme eklerini uygulama, kodunuzu dağıtma, web hizmeti ön ucu çalıştırma, kodunuzu izleme ve günlüğe kaydetme gibi operasyonel ve yönetimsel etkinlikleri sizin yerinize gerçekleştirir. AWS Lambda, ek çaba göstermenize gerek kalmadan kodunuz için kolay ölçeklendirme ve yüksek erişilebilirlik sunar.

AWS Lambda, bulut üzerinde birçok farklı etkinliği gerçekleştirmek için kolay bir yöntem sunar. Örneğin AWS Lambda’yı Amazon DynamoDB’den veri alıp dönüştüren mobil arka uçlar oluşturma, Amazon S3’e yüklenen nesneleri sıkıştıran veya dönüştüren işleyiciler tasarlama, herhangi bir Amazon Web Service için yapılan API çağrılarını denetleme ve raporlama ve Amazon Kinesis kullanarak akış verilerinin sunucusuz işlenmesi gibi amaçlarla kullanabilirsiniz.

AWS Lambda; Java, Go, PowerShell, Node.js, C #, Python ve Ruby kodlarını doğal olarak destekler ve işlevlerinizi oluşturmak için herhangi bir ek programlama dili kullanmanıza izin veren bir Çalışma Zamanı API'si sağlar. Lütfen Node.js, Python, Java, Ruby, C#, Go ve PowerShell kullanma hakkındaki belgelerimizi okuyun.

Hayır. AWS Lambda, bilişim altyapısını sizin adınıza çalıştırır, sistem durumunu kontrol eder, güvenlik düzeltme eklerini uygular ve diğer rutin bakım prosedürlerini gerçekleştirir.
AWS Lambda işlevlerinin her biri, kendi kaynaklarına ve dosya sistemi görünümüne sahip olan yalıtılmış bir ortamda çalışır. AWS Lambda, altyapı ve yürütme düzeylerinde güvenlik ve ayrım sağlamak için Amazon EC2 ile aynı teknikleri kullanır.
AWS Lambda, kodunuzu Amazon S3’te depolar ve bekleme durumunda şifreler. AWS Lambda, kodunuz kullanılırken ek bütünlük denetimleri gerçekleştirir.

AWS Lambda İşlevleri

AWS Lambda üzerinde çalıştırdığınız kod, bir “Lambda işlevi” olarak yüklenir. Her işlev adı, açıklaması, giriş noktası ve kaynak gereksinimleri gibi kendine has yapılandırma bilgilerine sahiptir. Kodun “durum bilgisi olmayan” bir şekilde yazılması gerekir. Başka bir deyişle kod, belirli bir işlem altyapısına bağlı olmamalıdır. Yerel dosya sistemine erişim, alt işlemler ve benzer yapıtlar isteğin yaşam süresini aşmamalıdır ve kalıcı durumlar Amazon S3, Amazon DynamoDB, Amazon EFS veya internet üzerinden erişilebilen başka bir depolama hizmetinde depolanmalıdır. Lambda işlevlerinde yerel olanlar dahil olmak üzere kitaplıklar kullanılabilir.

AWS Lambda, performansı artırmak için yeni bir kopya oluşturmak yerine işlevinizin bulunduğu bulut sunucusunu tutarak daha sonra yapılan bir isteği yanıtlamak için yeniden kullanabilir. Lambda'nın işlev bulut sunucularını yeniden kullanması hakkında daha fazla bilgi için belgelerimizi inceleyin. Kodunuzda bunun her zaman gerçekleştirileceği varsayımı bulunmamalıdır.

Her bir Lambda işlevini 1 MB'lık artışlarla 512 MB ile 10.240 MB aralığında olacak şekilde kendi kısa ömürlü depolamasıyla yapılandırabilirsiniz. Kısa ömürlü depolama her bir işlevin /tmp dizininde mevcuttur.

Her işlevin, hiçbir ilave maliyet olmaksızın 512 MB depolamaya erişimi bulunur. İşlevlerinizi 512 MB'ın üzerinde kısa ömürlü depolamayla yapılandırırken, yapılandırdığınız depolama miktarına ve 1 ms'lik artışlarla ölçülmek suretiyle işlevinizin ne uzunlukta çalıştığına göre ücretlendirilirsiniz. Karşılaştıracak olursak, ABD Doğu (Ohio) bölgesinde AWS Fargate kısa ömürlü depolama fiyatı GB-saat başına 0,000111 USD veya GB-ay başına 0,08 USD'dir. ABD Doğu (Ohio) bölgesinde Amazon EBS gp3 depolama birimi fiyatlandırması GB-ay başına 0,08 USD'dir. AWS Lambda kısa ömürlü depolama fiyatlandırması GB-saniye başına 0,0000000309 USD veya GB-saat başına 0.000111 USD ve GB-ay başına 0,08 USD'dir. Daha fazla bilgi edinmek için AWS Lambda Fiyatlandırmasına göz atın.

İşlev oluşturma veya güncelleme süreci sırasında AWS Lambda konsolunu, AWS Lambda API'yi veya AWS CloudFormation şablonunu kullanarak her bir Lambda işlevini 1 MB'lık artışlarla 512 MB ile 10.240 MB aralığında olacak şekilde kendi kısa ömürlü depolamasıyla yapılandırabilirsiniz.
Evet. Kısa ömürlü depolamada saklanan bekleme durumundaki tüm veriler, AWS tarafından yönetilen bir anahtarla şifrelenir.

Kısa ömürlü depolama kullanımınızı izlemek için AWS CloudWatch Lambda Insight ölçümlerini kullanabilirsiniz. Daha fazla bilgi edinmek için AWS CloudWatch Lambda Insights belgelerine bakın.

Uygulamanız için dayanıklı, kalıcı depolamaya ihtiyaç duyuyorsanız Amazon S3 veya Amazon EFS kullanmayı düşünün. Uygulamanız, kod için gereken verilerin tek bir işlev çağırma kapsamında saklanmasını gerektiriyorsa AWS Lambda kısa ömürlü depolamayı, geçici bir önbellek olarak kullanmayı düşünün. Daha fazla bilgi edinmek için Web uygulamalarında AWS Lambda veri depolama seçenekleri arasında seçim yapma bölümüne bakın.

Evet. Ancak, uygulamanız için kalıcı depolamaya ihtiyaç duyuyorsanız Amazon EFS veya Amazon S3 kullanmayı düşünün. İşleviniz için Tedarik Edilen Eş Zamanlılığı etkinleştirdiğinizde, işlevinizin çalışan bulut sunucuları geri dönüştürüldükçe işlevinizin başlatma kodu, tahsis sırasında ve her birkaç saate bir çalışır. Bir bulut sunucusu bir isteği işleme aldıktan sonra başlangıç zamanını günlükler ve izlemelerde görebilirsiniz. Ancak başlatma, bulut sunucusunun bir isteği hiç işleme almadığı durumda bile faturalandırılır. Bu Tedarik Edilen Eş Zamanlılık başlatma davranışı, isteklerin işleviniz tarafından işleme alınmadığı durumlarda bile işlevinizin kısa ömürlü depolamada sakladığınız verilerle etkileşime girme şeklini etkileyebilir. Tedarik Edilen Eş Zamanlılık hakkında daha fazla bilgi edinmek için lütfen ilgili belgelere bakın.

İşlev oluşturma veya güncelleme süreci sırasında AWS Lambda konsolunu, AWS Lambda API'yi veya AWS CloudFormation şablonunu kullanarak her bir Lambda işlevini 1 MB'lık artışlarla 512 MB ile 10.240 MB aralığında olacak şekilde kendi kısa ömürlü depolamasıyla yapılandırabilirsiniz.
Evet. Kısa ömürlü depolamada saklanan bekleme durumundaki tüm veriler, AWS tarafından yönetilen bir anahtarla şifrelenir.

Kısa ömürlü depolama kullanımınızı izlemek için AWS CloudWatch Lambda Insight ölçümlerini kullanabilirsiniz. Daha fazla bilgi edinmek için AWS CloudWatch Lambda Insights belgelerine bakın.

İşlevlerin durum bilgisine sahip olmaması, AWS Lambda’nın gelen olayların hızına göre ölçeklendirme gerçekleştirme amacıyla işlevin çok sayıda kopyasını hızlı bir şekilde başlatmasını sağlar. AWS Lambda’nın programlama modelinde durum bilgisi olmasa da kodunuz Amazon S3 veya Amazon DynamoDB gibi diğer web hizmetlerini çağırarak durum bilgisi olan verilere erişebilir.
Evet. AWS Lambda, ek iş parçacığı ve işlem oluşturma gibi normal dil ve işletim sistemi özelliklerini kullanmanıza izin verir. Bellek, yürütme süresi, disk ve ağ kullanımı gibi Lambda işlevine ayrılmış olan kaynakların kullanılan tüm iş parçacıkları/işlemler arasında paylaşılması gerekir. Amazon Linux tarafından desteklenen dilleri kullanarak işlem başlatabilirsiniz.
Lambda, normal dil ve işletim sistemi etkinliklerinde mümkün olduğunca az sayıda kısıtlama uygulamaya çalışsa da devre dışı bırakılmış birkaç etkinlik mevcuttur: Gelen ağ bağlantıları AWS Lambda tarafından engellenir ve giden bağlantılarda yalnızca TCP/IP ve UDP/IP yuvaları desteklenir, ptrace (hata ayıklama) sistem çağrıları engellenir. İstenmeyen e-postaların engellenmesi için 25 numaralı TCP bağlantı noktasının trafiği de engellenir.

Node.js veya Python kullanıyorsanız AWS Lambda konsolundaki kod düzenleyiciyi kullanarak güçlü ve IDE benzeri bir ortamda işlevlerinizin kodunu yazabilir, işlevlerinizi test edebilir ve yürütülen işlevlerin sonuçlarını görüntüleyebilirsiniz. Başlamak için konsola gidin.

Dilerseniz kodu (ve bağlı kitaplıkları) ZIP biçiminde paketleyip AWS Lambda konsolu ile yerel ortamınızdan yükleyebilir veya ZIP dosyasının bulunduğu Amazon S3 konumunu belirtebilirsiniz. Yüklenen dosyalar en fazla 50 MB (sıkıştırılmış) olabilir. AWS Eclipse eklentisini kullanarak Java ortamınızda Lambda işlevlerini yazabilir ve dağıtabilirsiniz. Visual Studio eklentisini kullanarak C# ve Node.js ile Lambda işlevlerini yazabilir ve dağıtabilirsiniz.

Kodu (ve bağlı kitaplıkları) ZIP biçiminde paketleyip AWS CLI ile yerel ortamınızdan yükleyebilir veya ZIP dosyasının bulunduğu Amazon S3 konumunu belirtebilirsiniz. Yüklenen dosyalar en fazla 50 MB (sıkıştırılmış) olabilir. Başlamak için Lambda Kullanmaya Başlama kılavuzunu ziyaret edin.

Evet. AWS Lambda Konsolu, CLI veya SDK'lardan kolayca ortam değişkeni oluşturabilir ve değiştirebilirsiniz. Ortam değişkenleri hakkında daha fazla bilgi edinmek için belgelere göz atın.

Veri tabanı parolaları gibi hassas bilgiler için AWS Anahtar Yönetimi Hizmeti ile istemci tarafında şifreleme özelliğini kullanmanızı ve sonuç değerlerini ortam değişkeninizde şifreli metin olarak saklamanızı öneririz. Bu değerlerin şifresini çözmek için gerekli olan mantığı AWS Lambda işlevinizin koduna eklemeniz gerekir.

Lambda API'sini veya konsolunu kullanarak Lambda işlevinizle ilişkili kaynakları ayarlayabilir ve güvenliklerini sağlayabilirsiniz. Bu konuda daha fazla bilgi almak için belgelere bakın.

Evet, herhangi bir kodu (entegrasyon SDK'lar, kütüphaneler ve daha fazlası) bir Lambda Katmanı olarak paketleyebilir ve bunları birden çok işlev arasında kolayca yönetebilir ve paylaşabilirsiniz.

AWS Lambda, Lambda işlevlerini sizin yerinize otomatik olarak izleyerek toplam istek sayısı, hesap ve işlev düzeyinde zaman uyumlu kullanım, gecikme süresi, hata oranı ve kısıtlanan istek sayısı gibi gerçek zamanlı ölçümleri Amazon CloudWatch üzerinden bildirir. Her bir Lambda işlevinizle ilgili istatistikleri Amazon CloudWatch konsolunda veya AWS Lambda konsolunda görüntüleyebilirsiniz. Lambda işlevinizde üçüncü taraf izleme API’lerini de çağırabilirsiniz.
 

Daha fazla bilgi için CloudWatch ölçüleriyle ilgili sorunları giderme sayfasını ziyaret edin. Lambda’nın yerleşik ölçümlerini kullandığınızda standart AWS Lambda ücretleri alınır.

AWS Lambda, Amazon CloudWatch Logs'a otomatik olarak entegre edilir ve her Lambda işlevi için bir günlük grubu oluşturularak işlevin her bir kullanımında tüketilen kaynaklar dahil olmak üzere temel uygulama yaşam döngüsü olay günlüğü girişleri sağlanır. Kodunuza kolayca ek günlüğe kaydetme deyimleri ekleyebilirsiniz. Lambda işlevinizde üçüncü taraf günlüğe kaydetme API’lerini de çağırabilirsiniz. Daha fazla bilgi için Lambda işlevleriyle ilgili sorunları giderme sayfasını ziyaret edin. Amazon CloudWatch Logs ücretleri alınır.

Lambda işlevlerini ölçeklendirmenize gerek yoktur. AWS Lambda işlevleri sizin yerinize otomatik olarak ölçeklendirir. İşleviniz için bir olay bildirimi alındığında AWS Lambda hızlıca işlem filosundaki boş kapasiteyi bulur ve kodunuzu çalıştırır. Kodunuzda durum bilgisi olmadığından AWS Lambda, dağıtım ve yapılandırma kaynaklı uzun gecikme süreleri olmadan işlevinizin istenen sayıda kopyasını başlatabilir. İşlev ölçeklendirme konusunda bir sınır yoktur. AWS Lambda, gelen olayların hızına ayak uyduracak şekilde kapasiteyi dinamik olarak ayıracaktır.

AWS Lambda kaynak modelinde, işlevinizle kullanılacak bellek miktarını seçersiniz ve CPU gücü ile diğer kaynaklar bu miktarla orantılı bir şekilde ayrılır. Örneğin 256 MB bellek seçtiğinizde Lambda işlevinize 128 MB belleğin iki katı, 512 MB belleğin ise yarısı kadar CPU gücü ayrılır. Daha fazla bilgi edinmek için İşlev Yapılandırma belgemize bakın.

Belleğinizi 128 MB ile 10.240 MB arasında belirleyebilirsiniz.

Yoğun bellek veya işlem gerektiren iş yükleri çalıştıran müşteriler, işlevleri için artık daha fazla bellek kullanabilir. Daha büyük bellek işlevleri, çok iş parçacıklı uygulamaların daha hızlı çalışmasına yardımcı olmaktadır. Dolayısıyla bu işlevler makine öğrenimi, toplu işler, ETL işleri, finansal modelleme, genomik, HPC ve medya işleme gibi yoğun veri ve işlem gerektiren uygulamalar için idealdir.
AWS Lambda işlevleri yürütme başına 15 dakikaya kadar çalışacak şekilde yapılandırılabilir. Zaman aşımını 1 saniye ile 15 dakika arasındaki herhangi bir değer olacak şekilde ayarlayabilirsiniz.

AWS Lambda, kullanıma göre ücretlendirilir. Ayrıntılar için lütfen AWS Lambda fiyatlandırma sayfasına göz atın.

Evet. Amazon EC2 ve AWS Fargate'te para tasarrufu sağlamanın yanı sıra Compute Savings Plans ile AWS Lambda'da para tasarrufu sağlayabilirsiniz. Compute Savings Plans; Süre, Tedarik Edilen Eş Zamanlılık ve Süre (Tedarik Edilen Eş Zamanlılık) için %17'ye kadar indirim sunar. Compute Savings Plans, Lambda faturanızda İstekler için bir indirim sunmaz. Ancak Compute Savings Plans taahhüdünüz, normal fiyatlardaki İstekler için geçerli olabilir.

Evet. Her AWS Lambda işlevi varsayılan olarak tek ve güncel bir kod sürümüne sahiptir. Lambda işlevi istemcileri belirli bir sürümü çağırabilir veya en son uygulamayı alabilir. Lütfen Lambda işlevlerinde sürüm oluşturma belgemizi okuyun.

Dağıtım süresi kodunuzun büyüklüğüne göre değişiklik gösterir ancak AWS Lambda işlevleri genelde yükleme işleminden birkaç saniye sonra çağırmaya hazır duruma gelir.
Evet. AWS Lambda tarafından sunulan varsayılan sürümün yerine kullanmak üzere kendi kitaplık (AWS SDK dahil) kopyanızı dahil edebilirsiniz.

AWS Lambda, belirli eşiklerin üzerinde aylık istek üzerine işlev süresi için indirimli fiyatlandırma katmanları sunar. Katmanlı fiyatlandırma, hem x86 hem de Arm mimarilerinde çalışan işlevler için sunulmaktadır. Lambda fiyatlandırma katmanları; aynı bölgede, hesap dahilinde ve aynı mimari (sırasıyla x86 veya Arm) üzerinde çalışan işlevlerinizin toplu aylık istek üzerine süresine uygulanır. AWS Kuruluşlar'da birleştirilmiş faturalandırma kullanıyorsanız fiyatlandırma katmanları, kuruluştaki hesaplar genelinde aynı mimaride, aynı bölgede çalışan işlevlerinizin aylık toplam süresine uygulanır. Örneğin, ABD Doğu (Ohio) bölgesinde x86 Lambda işlevleri çalıştırıyorsanız bu bölgede aylık ilk 6 milyar GB-saniye için her GB-saniye başına 0,0000166667 USD; sonraki aylık 9 milyar GB-saniye için her GB-saniye başına 0,0000150000 USD; ve 15 milyar GB-saniyenin üzeri için GB-saniye başına 0,0000133334 USD ödersiniz. İstek, Tedarik Edilen Eşzamanlılık ve Tedarik Edilen Eşzamanlılık Süresi fiyatlandırmasında değişiklik yapılmaz. Daha fazla bilgi için lütfen bkz. AWS Lambda Fiyatlandırması.

Evet. Saatlik tasarruf planı tarafından karşılanan Lambda kullanımı taahhüdü faturalaması CSP oranına ve indirime uygulanabilir. Bu taahhüt kapsamında olmayan kalan kullanım, aylık toplam işlev sürenizin ait olduğu düzeye karşılık gelen oranda faturalandırılacaktır.

AWS olaylarını işlemek için AWS Lambda’yı kullanma

Olay kaynağı, bir AWS Lambda işlevinin çalışmasını tetikleyen olaylar üreten bir AWS hizmeti veya yazılım geliştirici tarafından oluşturulmuş uygulamadır. Bazı hizmetler bu olayları Lambda’da yayımlamak için doğrudan bulut işlevini (Amazon S3 gibi) çağırır. Lambda ayrıca Lambda’da olay yayımlamayan diğer hizmetlerdeki kaynakları da yoklayabilir. Örneğin Lambda, bir Amazon Kinesis akışındaki veya Amazon SQS kuyruğundaki kayıtları alabilir ve getirilen her mesaj için bir Lambda işlevi gerçekleştirebilir. AWS CloudTrail gibi diğer pek çok hizmet, yalnızca Amazon S3'te oturum açarak ve AWS Lambda işlevlerini tetiklemek için S3 klasör bildirimlerini kullanarak olay kaynağı olarak işlev görebilir

Olay kaynaklarının tam listesi için lütfen belgelerimizi inceleyin.

Olaylar, bir Lambda işlevine olay giriş parametresi olarak iletilir. Amazon SQS, Amazon Kinesis ve Amazon DynamoDB Streams gibi olayların toplu şekilde geldiği olay kaynaklarında olay parametresi, istediğiniz toplu iş boyutuna göre tek bir çağrıda birden fazla olay içerebilir. Amazon S3 olay bildirimleri hakkında daha fazla bilgi edinmek için Amazon S3 Olayları için Bildirimleri Yapılandırma sayfasını ziyaret edin. Amazon DynamoDB Akışlar hakkında daha fazla bilgi edinmek için DynamoDB Akışı Geliştirici Kılavuzu'nu ziyaret edin. Amazon SNS kullanarak Lambda işlevlerini çağırma hakkında daha fazla bilgi edinmek için Amazon SNS Geliştirici Kılavuzu'nu ziyaret edin. Amazon Cognito olayları hakkında daha fazla bilgi için Amazon Cognito sayfasını ziyaret edin. AWS CloudTrail günlükleri ve AWS hizmetlerindeki API çağrılarını denetleme hakkında daha fazla bilgi için AWS CloudTrail sayfasını ziyaret edin.

AWS Lambda konsolundan bir işlev seçip bu işlevi bir Amazon S3 klasöründen gelen bildirimlerle ilişkilendirebilirsiniz. Alternatif olarak Amazon S3 konsolunu kullanarak klasörün bildirimlerini AWS Lambda işlevinize gönderilecek şekilde yapılandırabilirsiniz. Aynı işlemi AWS SDK ve CLI aracılığıyla da gerçekleştirebilirsiniz.
Lambda işlevinizi tabloyla ilişkili DynamoDB akışına abone yaparak bu Lambda işlevinin DynamoDB tablosundaki güncellemelerle tetiklenmesini sağlayabilirsiniz. Bir DynamoDB Akışını bir Lambda işleviyle ilişkilendirmek için Amazon DynamoDB konsolunu, AWS Lambda konsolunu veya Lambda'nın registerEventSource API'sini kullanabilirsiniz.
AWS Lambda konsolundan bir Lambda işlevini seçip aynı hesabın sahibi olduğu bir Amazon Kinesis akışıyla ilişkilendirebilirsiniz. Aynı işlemi AWS SDK ve CLI aracılığıyla da gerçekleştirebilirsiniz.
AWS Lambda işlevinize gönderilen Amazon Kinesis ve DynamoDB Streams kayıtları, her parça için kesin bir şekilde seri hale getirilir. Başka bir deyişle, aynı parçaya iki kayıt yerleştirmeniz halinde Lambda, işlevinizin ikinci kayıtla çağrılmadan önce ilk kayıtlı başarılı bir şekilde çağrılacağını garanti eder. Kayıtlardan biri için çağırma işleminin zaman aşımına uğraması, kısıtlanması veya başka bir hatayla karşılaşması halinde Lambda, bir sonraki kayda geçmeden önce başarılı olana kadar (veya kayıt 24 saatlik süreyi geçirene kadar) yeniden denemeye devam eder. Farklı parçalardaki kayıtların sıralanması garanti edilmez ve her parça paralel olarak işleme alınır.

AWS Lambda size Amazon Kinesis veya Amazon DynamoDB Streams üzerinde, parça gibi tek bir mantıksal bölüm için 15 dakikayla sınırlı kısa bir zaman aralığında zamana dayalı toplamalar (sayma, maksimum, toplama, ortalama vb.) yapma olanağı tanır. İşletme ve analiz mantığınız aynı işlevde yer alabileceği için bu seçenek, mimari karmaşıklığı artırmadan olay tabanlı uygulamanız üzerinde basit analizleri kolayca ayarlamanıza imkan verir. Lambda, olayın zaman damgasına dayalı olarak en fazla 15 dakikalık bir yuvarlanan zaman aralığında toplamalara izin verir. Amazon Kinesis Veri Analizi size yinelenme olmadan tam olarak bir kere işlemeyle esnek işleme seçimleri ve güçlü hata toleransını destekleyen daha karmaşık analiz uygulamaları ve birden fazla mantıksal bölümü kapsayan bütün bir veri akışı üzerinde gerçekleştirilebilecek analizler geliştirme olanağı tanır. KDA sayesinde ister olay zamanını ister işleme zamanını kullanarak farklı toplama aralıklarındaki (yuvarlanan zaman aralığı, kademeli zaman aralığı, kayan zaman aralığı, oturum zaman aralığı) verileri analiz edebilirsiniz.
 

  AWS Lambda Amazon KDA
Yuvarlanan Zaman Aralığı Evet Evet
Kademeli Zaman Aralığı Hayır Evet
Kayan Zaman Aralığı Hayır Evet
Oturum Zaman Aralığı Hayır Evet
Zenginleştirme Hayır Evet
Ortak girdi ve başvuru tabloları Hayır Evet
Ayrı girdi akışı Hayır Evet
Tam olarak bir kere işleme Hayır Evet
Maksimum zaman aralığı 15 dakika Sınır yok
Toplama kapsamı Bölüm/parça Akış
Zaman semantiği Olay zamanı Olay zamanı, İşleme zamanı
AWS Lambda konsolundan bir Lambda işlevi seçip bir Amazon SNS konusuyla ilişkilendirebilirsiniz. Aynı işlemi AWS SDK ve CLI aracılığıyla da gerçekleştirebilirsiniz.
Amazon SES konsolundan alma kuralınızı Amazon SES, iletileri bir AWS Lambda işlevine teslim edecek şekilde ayarlayabilirsiniz. Aynı işlemi AWS SDK ve CLI aracılığıyla gerçekleştirebilirsiniz.

Öncelikle alarmı Amazon SNS bildirimleri gönderecek şekilde yapılandırın. Ardından AWS Lambda konsolundan bir Lambda işlevi seçin ve bir Amazon SNS konusuyla ilişkilendirin. Amazon CloudWatch alarmlarını ayarlama konusunda daha fazla bilgi edinmek için Amazon CloudWatch Geliştirici Kılavuzu'na bakın.

AWS Lambda konsolundan bir işlev seçerek bir Amazon Cognito kimlik havuzuyla ilişkilendirilmiş veri kümeleri eşitlendiğinde bu işlevin tetiklenmesini sağlayabilirsiniz. Aynı işlemi AWS SDK ve CLI aracılığıyla da gerçekleştirebilirsiniz. Kullanıcının cihazlarındaki verileri paylaşmak ve eşitlemek üzere Amazon Cognito’yu kullanma hakkında daha fazla bilgi edinmek için Amazon Cognito sayfasını ziyaret edin.

Bir Lambda işlevini çağırmak için AWS Lambda'nın çağırma API'si aracılığıyla özel bir olay kullanabilirsiniz. Yalnızca işlevin sahibi veya sahibin izin verdiği başka bir AWS hesabı işlevi çağırabilir. Daha fazla bilgi edinmek için Lambda Yazılım Geliştirme Kılavuzu'nu ziyaret edin.

AWS Lambda, olayları milisaniyeler içinde işleyecek şekilde tasarlanmıştır. Lambda işlevi yeni oluşturulduğunda, güncellendiğinde veya uzun süre kullanılmadığında gecikme süresi daha yüksek olacaktır.

AWS Lambda'nın çalıştırmasını istediğiniz kodu yükledikten sonra bunu AWS Mobile SDK içinde bulunan AWS Lambda SDK ile mobil uygulamanızdan çağırabilirsiniz. Verileri gerçek zamanlı olarak almak veya denetlemek için doğrudan (zaman uyumlu) veya zaman uyumsuz çağrılar kullanabilirsiniz. Dilerseniz Amazon API Gateway ile özel bir API tanımlayabilir ve REST uyumlu bir istemciyle Lambda işlevlerinizi çağırabilirsiniz. AWS Mobil SDK hakkında daha fazla bilgi edinmek için AWS Mobil SDK sayfasını ziyaret edin. Amazon API Ağ Geçidi hakkında daha fazla bilgi edinmek için Amazon API Ağ Geçidi sayfasını ziyaret edin.

Lambda işlevini HTTPS üzerinden çağırmak için Amazon API Gateway'i kullanarak özel bir RESTful API tanımlamanız gerekir. Bu da işlevinizin GET, PUT ve POST gibi REST çağrılarına yanıt verebileceği bir uç nokta sağlar. AWS Lambda'yı Amazon API Gateway ile birlikte kullanma hakkında daha fazla bilgi edinin.
AWS Mobile SDK ile çağrılan AWS Lambda işlevleri, "context" nesnesi sayesinde çağrıyı yapan cihaz ve uygulama hakkında otomatik olarak öngörü sahibi olur.
Uygulamanız Amazon Cognito kimliğini kullandığında son kullanıcılarınız kimliklerini Amazon, Facebook, Google ve diğer OpenID Connect uyumlu hizmetler gibi genel oturum açma sağlayıcılarını kullanarak doğrulayabilir. Bu durumda, kullanıcı kimliği otomatik ve güvenli bir şekilde Lambda işlevinize Amazon Cognito kimliği biçiminde sağlanır ve işleviniz bu sayede Amazon Cognito’daki kullanıcı verilerine erişebilir. Alternatif olarak Amazon DynamoDB ya da diğer web hizmetlerindeki verilere erişmek ve veri kaydetmek için kullanılabilecek bir anahtar da iletilebilir.
AWS Lambda, Alexa için sese dayalı özellikler (veya "beceriler") oluşturmanızı kolaylaştıran self servis API'ler, araçlar, belgeler ve kod örneklerinden oluşan Alexa Skills Kit ile entegredir. Oluşturduğunuz yeni Alexa becerisi için Lambda işlev kodunu yüklediğinizde AWS Lambda, kodu Alexa ses etkileşimlerine göre yürüterek ve işlem kaynaklarını sizin yerinize otomatik olarak yöneterek gereken işlemleri gerçekleştirir. Daha fazla bilgi edinmek için Alexa Skills Kit belgelerini okuyun.
Amazon S3 klasör bildirimleri ve özel olaylar için AWS Lambda, kodunuzda hata oluşması veya bir hizmet ya da kaynak sınırını aşmanız halinde işlevinizi üç kez yürütmeyi dener. Amazon DynamoDB Streams ve Amazon Kinesis Streams gibi AWS Lambda’nın sizin yerinize yokladığı sıralı olay kaynakları için Lambda, yazılım geliştirici kodunda hata olduğunda verilerin süresi dolana kadar yürütme girişimlerini sürdürür. İlerleme durumunu Amazon Kinesis ve Amazon DynamoDB konsollarından ve AWS Lambda’nın işleviniz için ürettiği Amazon CloudWatch ölçümlerinden izleyebilirsiniz. Ayrıca hata veya kısıtlama oranlarına bağlı Amazon CloudWatch alarmları da oluşturabilirsiniz.

Uygulama geliştirmek için AWS Lambda’yı kullanma

Lambda tabanlı uygulamalar (sunucusuz uygulama olarak da adlandırılır), olaylar tarafından tetiklenen işlevlerden oluşur. Tipik bir sunucusuz uygulama, Amazon S3’e nesne yükleme, Amazon SNS bildirimleri veya API eylemleri gibi olaylar tarafından tetiklenen bir veya daha fazla işlevden oluşur. Bu işlevler bağımsız olabilir veya DynamoDB tabloları ya da Amazon S3 klasörleri gibi diğer kaynaklardan faydalanabilir. En basit sunucusuz uygulama örneği bir işlevdir.
Sunucusuz uygulamalarınızı AWS Serverless Application Model (AWS SAM) ile dağıtabilir ve yönetebilirsiniz. AWS SAM, AWS üzerinde sunucusuz uygulamaları ifade etme kurallarını belirleyen bir belirtimdir. Bu belirtim günümüzde AWS CloudFormation tarafından kullanılan söz dizimi ile aynıdır ve AWS CloudFormation içinde kaynak türü kümesi ("sunucusuz kaynaklar") olarak desteklenir. Bu kaynaklar, AWS müşterilerinin var olan CloudFormation API'lerinden faydalanarak CloudFormation ile sunucusuz uygulama yapılandırmalarını ve dağıtmalarını kolaylaştırır.

AWS topluluğundaki yazılım geliştiriciler, şirketler ve çözüm ortakları tarafından yayımlanmış olan sunucusuz uygulama koleksiyonuna AWS Sunucusuz Uygulama Deposu üzerinden erişebilirsiniz. Uygulamayı bulduktan sonra doğrudan Lambda konsolunda yapılandırabilir ve dağıtabilirsiniz.

Sunucusuz uygulamanızın yayımlanma sürecini otomatikleştirmek için AWS CodePipeline ve AWS CodeDeploy hizmetlerini kullanabilirsiniz. CodePipeline, sunucusuz uygulamanızı yayımlamak için gerekli olan adımları modellemenizi, görselleştirmenizi ve otomatikleştirmenizi sağlayan sürekli teslim hizmetidir. CodeDeploy, Lambda tabanlı uygulamalarınız için dağıtım otomasyonu altyapısı sağlar. CodeDeploy, dağıtımları kanarya ve doğrusal dağıtımlar gibi en iyi uygulama metodolojilerine göre yönetmenizi sağlar ve yeni dağıtılan kodun güvenli, kararlı ve üretime sunulmaya hazır olduğunu doğrulamak için gerekli ölçütleri belirlemenize yardımcı olur.
 

Sunucusuz CI/CD hakkında daha fazla bilgi edinmek için belgelerimizi ziyaret edin.

Başlamak için AWS Lambda konsolunu ziyaret edin ve şemalarımızdan birini indirin. İndirdiğiniz dosyada bir AWS SAM dosyası (uygulamanızdaki AWS kaynaklarını tanımlar) ve bir .ZIP dosyası (işlevinizin kodunu içerir) bulunur. Ardından AWS CloudFormation komutlarını kullanarak indirdiğiniz sunucusuz uygulamayı paketleyebilir ve dağıtabilirsiniz. Daha fazla bilgi edinmek için belgelerimizi ziyaret edin.

AWS Step Functions'ı kullanarak AWS Lambda işlevi dizinizi belirli bir sırada koordine edebilirsiniz. Birden fazla Lambda işlevini sırasıyla çağırabilir, birinin çıktısını diğerine iletebilir ve/veya paralel olarak Step Functions hizmetinin yürütme işlemlerinin durumunu takip etmesini sağlayabilirsiniz.

Lambda işlevinizin yürütme rolüne X-Ray izinleri ekleyerek ve işlevinizin "tracing mode" değerini "active" yaparak AWS X-Ray ile izlenmesini sağlayabilirsiniz. X-Ray, Lambda işlevinizde etkinleştirildiğinde AWS Lambda, işleviniz çağrıldığında gerçekleşen Lambda hizmeti yüküyle ilgili izleme bilgilerini X-Ray hizmetine iletir. Bu da Lambda hizmeti yükü, işlev başlatma süresi ve işlev yürütme süresi gibi bilgiler sağlar. Ayrıca X-Ray SDK’sını Lambda dağıtım paketinize dahil ederek kendi izleme bölümlerinizi oluşturabilir, izlemelere not ekleyebilir veya Lambda işlevinizden yapılan aşağı yönlü çağrılara ait izleme bölümlerini görüntüleyebilirsiniz. X-Ray SDK’ları şu an için Node.js ve Java ile kullanılamaz. Daha fazla bilgi edinmek için Lambda tabanlı uygulamalarla ilgili sorunları giderme sayfasını ziyaret edin. AWS X-Ray ücretleri geçerli olacaktır.

Evet. İlişkisel veri tabanlarına binlerce eş zamanlı bağlantıyı yöneten, son derece erişilebilir bir veri tabanı proxy'si olan Amazon RDS Proxy'sini kullanarak, ilişkisel veri tabanlarına bağlanan, yüksek düzeyde ölçeklenebilir, güvenli, Lambda temelli sunucusuz uygulamalar oluşturabilirsiniz. Mevcut durumda RDS Proxy'sinin, MySQL ve Aurora veritabanları için desteği bulunmaktadır. Amazon RDS konsolu veya AWS Lambda konsolu üzerinden RDS Proxy'sini kullanmaya başlayabilirsiniz. RDS Proxy'sinden tamamen yönetilen bağlantı havuzlarını kullanan sunucusuz uygulamalar, RDS Proxy'si Fiyatlandırmasına göre faturalandırılır.

Belirtim, Apache 2.0 kapsamında açık kaynaktır ve bu durum ticari kullanıma uygun bir lisansla size ve diğer kullanıcılara AWS SAM hizmetini hayata geçirerek derleme, dağıtım, izleme ve yönetim araçlarında kullanma izni verir. GitHub üzerindeki AWS SAM deposuna buradan erişebilirsiniz.

Container görüntüsü desteği

AWS Lambda artık işlevleri birer container görüntüsü olarak paketleme ve dağıtma imkanı sunmaktadır. Müşteriler uygulamalarını geliştirirken hem aşina oldukları container araçlarının sunduğu esneklikten hem de AWS Lambda'nın sunduğu çeviklikten ve operasyonel basitlikten yararlanabilir.
Lambda için AWS tarafından temin edilen temel görüntülerle, topluluk tarafından geliştirilmiş görüntülerle veya kendi kurumsal görüntülerinizle kullanmaya başlayabilirsiniz. Bundan sonra da Docker CLI'yı kullanarak görüntüyü oluşturur, Amazon ECR'ye yükler ve AWS Management Console, AWS CLI, AWS SDK, AWS SAM ve AWS CloudFormation gibi aşina olduğunuz Lambda arabirim ve araçlarını kullanarak işlevi oluşturursunuz.
Lambda tarafından sağlanan görüntülere ek olarak, üçüncü taraf Linux temel görüntülerini (ör. Alpine veya Debian) dağıtabilirsiniz. AWS Lambda, şu görüntü bildirim formatlarına dayalı tüm görüntüleri destekler: Docker Image Manifest V2 Schema 2 (Docker sürüm 1.10 ve üstüyle kullanılır) veya Open Container Initiative (OCI) Teknik Özellikleri (v1.0 ve üstü). Lambda, boyutu 10 GB'a kadar olan görüntüleri destekler.
AWS Lambda, müşterilerin genişletebileceği çeşitli temel görüntüler temin etmektedir. Müşteriler ayrıca kendi tercih ettikleri, boyutu 10 GB'a kadar olan Linux tabanlı görüntüleri kullanabilir.
Kullanacağınız container aracının şu görüntü bildirim formatlarından birini desteklemesi yeterlidir: Docker Image Manifest V2 Schema 2 (Docker sürüm 1.10 ve üstüyle kullanılır) veya Open Container Initiative (OCI) Teknik Özellikleri (v1.0 ve üstü). Örneğin, işlevlerinizi bir container görüntüsü olarak tanımlamak ve Lambda'ya dağıtmak için yerel container görüntüleri (docker run, docker compose, Buildah ve Packer gibi) kullanabilirsiniz.
Lambda katmanları ve Kod İmzalama hariç tüm mevcut AWS Lambda özellikleri, container görüntüsü olarak dağıtılan işlevlerle birlikte kullanılabilir. AWS Lambda, bir defa dağıtıldıktan sonra görüntüyü değiştirilemez olarak görecektir. Müşteriler bağımlılıkları dahil etmek için oluşturma aşamasında container katmanları kullanabilir.
Şu anda desteklenmez. Bir defa AWS Lambda'ya dağıtıldıktan sonra görüntünüz değiştirilemez olacaktır. Hizmet, görüntüye düzeltme eki veya güncelleme uygulamaz. AWS Lambda bununla birlikte, Lambda tarafından yönetilen ortama dayalı desteklenen tüm çalışma zamanları için derlenmiş temel görüntüler yayınlayacaktır. Yayınlanan bu görüntülere, AWS Lambda tarafından yönetilen çalışma zamanlarında yapılan güncellemeler doğrultusunda düzeltme eki ve güncelleme uygulanacaktır. DockerHub veya Amazon ECR Public'ten en son temel görüntüyü çekip kullanabilir, kendi container görüntünüzü tekrar oluşturabilir ve Amazon ECR aracılığıyla AWS Lambda'ya dağıtabilirsiniz. Bu seçenek size görüntüyü üretim ortamına dağıtmadan önce, güncellenen görüntüleri ve çalışma zamanlarını oluşturma ve test etme olanağı tanır

ZIP arşivleriyle ve container görüntüleriyle oluşturulan işlevler arasında üç ana farklılık bulunur:

  1. ZIP arşivleriyle oluşturulan işlevlerin maksimum kod paketi büyüklüğü ayıklanmış haliyle 250 MB iken, container görüntüsüyle oluşturulanların maksimum görüntü boyutu 10 GB'tır. 
  2. Lambda'nın container görüntüleri olarak tanımlanan işlevlerin temelindeki kod depolama alanı olarak Amazon ECR'yi kullanması sebebiyle, temeldeki görüntü ECR'den silindiğinde işlev çağrılamayabilir. 
  3. En son çalışma zamanı güvenlik ve hata düzeltmelerini içeren düzeltme ekleri ZIP işlevlerine otomatik olarak uygulanır. Container görüntüleri olarak tanımlanan işlevler değiştirilemez niteliktedir ve işlevlerinde paketlenen bileşenlerden müşteriler sorumludur. Müşteriler AWS tarafından temin edilen ve yine AWS tarafından güvenlik ve hata düzeltmeleri doğrultusunda mevcut olan en son düzeltme ekleri uygulanarak düzenli bir şekilde güncellenen temel görüntülerden yararlanabilir.
Hayır. AWS Lambda, container görüntüleri olarak paketlenmiş işlevlerin, saniyenin altında başlangıç süreleri dahil olmak üzere ZIP arşivleriyle aynı performans profillerine sahip olmasını sağlar.

İşlevlerin AWS Lambda'ya container görüntüleri olarak paketlenmesi ve dağıtılması için ek ücret uygulanmaz. Bir container görüntüsü olarak dağıtılmış işlevinizi çağırdığınızda, istekler ve yürütme süresi için normal fiyat üzerinden ödeme yaparsınız. Daha fazla bilgi edinmek için AWS Lambda fiyatlandırması sayfasını ziyaret edin. Container görüntülerinizi Amazon ECR'de depolamak için standart ECR fiyatlarını ödersiniz. Daha fazla bilgi edinmek için Amazon ECR fiyatlandırması sayfasını ziyaret edin.

Lambda Runtime Interface Emulator, müşterilere container görüntüsü olarak paketlenmiş Lambda işlevlerini yerel olarak test etme olanağı tanıyan Lambda Çalışma Zamanı API'si için bir proxy'dir. Bu basit web sunucusu, HTTP isteklerini JSON olaylarına dönüştürür ve Lambda Çalışma Zamanı API'sini öykünür. İşlevlerinizi cURL ve Docker CLI gibi aşina olduğunuz araçları kullanarak yerel bir şekilde test etmenize olanak tanır (container görüntüleri olarak paketlenmiş işlevleri test ederken). Buna ek olarak, uygulamanızı ilave işlem hizmetlerinde çalıştırmayı basitleştirir. Lambda Runtime Interface Emulator'ı container görüntünüze dahil ederek Lambda'ya dağıtım için gerekli JSON olayları yerine yerel olarak HTTP isteklerini kabul edecek şekilde ayarlayabilirsiniz. Bu bileşen Lambda düzenleyicisine ya da güvenlik ve kimlik doğrulaması yapılandırmalarına öykünmemektedir. Runtime Interface Emulator açık kaynaklıdır ve GitHub'dan erişilebilir. Siz de yerel makinenize indirerek ve yükleyerek kullanmaya başlayabilirsiniz.

Çalışan Lambda hizmetindeki Lambda Çalışma Zamanı API'si, JSON olaylarını kabul eder ve yanıt gönderir. Lambda Runtime Interface Emulator, container görüntüsü olarak paketlenmiş işlevin yerel testler sırasında cURL gibi araçlar kullanılarak HTTP isteklerini kabul etmesine ve bunları aynı arabirim üzerinden yerel olarak işleve göstermesine olanak tanır. Bu sayede, docker run veya docker-compose up komutunu kullanarak lambda uygulamanızı yerel olarak test edebilirsiniz.
İşlev kodunuzun Lambda ortamıyla uyumlu olup olmadığını, başarıyla çalışıp çalışmadığını ve beklenen çıktıyı verip vermediğini test etmek için öykünücüyü kullanabilirsiniz. Örneğin, farklı olay kaynaklarından sahte test olayları üretebilirsiniz. Bu aracı, container görüntüsüne yerleştirilen uzantıları ve aracıları Lambda Uzantıları API'si üzerinde test etmek için de kullanabilirsiniz.

Müşteriler container görüntüsünün JSON olayları yerine HTTP isteklerini kabul etmesi amacıyla, Runtime Interface Emulator'ı container görüntüsüne giriş noktası olarak ekleyebilir veya bir bölme olarak paketleyebilir. Bu adım, container görüntünüzü ilave işlem hizmetlerinde çalıştırmanız için gerekli değişiklikleri basitleştirir. Seçtikleri ortamın güvenlik, performans ve eş zamanlılık en iyi uygulamalarını izlemekten müşteriler sorumludur. RIE, AWS Lambda tarafından temin edilen görüntülere önceden paketlenmiş durumdadır ve AWS SAM CLI'da varsayılan olarak kullanılabilir. Temel görüntü sağlayıcıları, kendi temel görüntülerinde aynı deneyimi sağlamak için belgelerden yararlanabilir.

Aşağıdaki gereklilikleri karşılıyorsa, container'lı bir uygulamayı AWS Lambda'ya dağıtabilirsiniz:

  1. Container görüntüsü, Lambda Çalışma Zamanı API'sini uygulamalıdır. Tercih ettiğiniz temel görüntüleri kolayca genişleterek Lambda uyumlu yapabilmeniz için Lambda Çalışma Zamanı API'sini uygulayan bir dizi yazılım paketini ve Çalışma Zamanı Arabirimi İstemcisini (RIC) açık kaynaklı hale getirdik.
  2. Container görüntüsü, salt okunur bir dosya sisteminde çalışabiliyor olmalıdır. İşlev kodunuz 512 MB boyutunda, üzerine veri yazabildiği bir /tmp dizinine erişebilir. Kök dizinine veri yazılmasını gerektiren bir görüntü kullanıyorsanız verileri /tmp dizinine yazılacak şekilde yapılandırın.
  3. İşlev kodunun yürütülmesi için gereken dosyalar, Lambda kullanıcısı tarafından okunabilmelidir. Lambda, en iyi güvenlik uygulamaları doğrultusunda en düşük ayrıcalıklı izinlere sahip bir varsayılan Linux kullanıcısı tanımlar. Uygulama kodunuzun, yürütülmesi diğer Linux kullanıcıları tarafından kısıtlanmış dosyalara ihtiyaç duymadığını doğrulamanız gerekir.
  4. Linux tabanlı bir container görüntüsü olmalıdır.

AWS Lambda SnapStart

Java İçin AWS Lambda SnapStart, 10 kata kadar daha hızlı işlev başlatma performansı sunar. İstek üzerine işlevler için başlatma aşaması (AWS Lambda'nın işlevin kodunu yüklediği ve harici bağımlılıkları başlattığı aşama), başlatma gecikmesinde en fazla payı olan aşamadır ve ilk çağrıda gerçekleşir. Lambda SnapStart ile Lambda, işlevi ilk kez çağırdığınızda değil, bir işlev sürümü yayınladığınızda tek seferlik başlatma işlev kodunu önceden başlatır. Ardından, Lambda bir anlık yedek alır ve başlatılan yürütme ortamının bellek ve disk durumunu önbelleğe kaydeder. İşlevi çağırdığınızda ve işlev ölçeklenirken Lambda, işlevi sıfırdan başlatmak yerine önbelleğe alınmış anlık yedekten sürdürür.

Lambda SnapStart; Lambda API'si, AWS Yönetim Konsolu, AWS Komut Satırı Arabirimi (CLI), AWS SDK, AWS Bulut Geliştirme Seti (CDK), AWS CloudFormation ve AWS Sunucusuz Uygulama Modeli (SAM) kullanılarak yeni ve mevcut Java işlevleri için yapılandırılabilen, basit, işlev düzeyinde bir yapılandırmadır. Lambda SnapStart'ı yapılandırdığınızda, bundan sonra yayınlanan her işlev sürümü, Lambda SnapStart tarafından sunulan iyileştirilmiş başlatma performansından yararlanır. Lambda SnapStart hakkında daha fazla bilgi edinmek için belgelere göz atın.

Lambda SnapStart, tek seferlik başlatma kodunun yürütülmesi sırasında ortaya çıkan değişken gecikmeyi azaltarak Java işlevlerinizin 10 kata kadar daha hızlı başlatma sürelerine ulaşmasına yardımcı olan bir performans optimizasyonudur. Lambda SnapStart, uygulamanızdaki veya hesabınızdaki tüm işlevlerde hiçbir ek ücret olmadan geniş çapta çalışır. Bir müşteri Lambda SnapStart ile bir işlev sürümü yayınladığında, işlevin kodu ilk çalıştırmada başlatılmak yerine önceden başlatılır. Ardından Lambda, başlatılan yürütme ortamının anlık yedeğini alır ve düşük gecikmeli erişim için katmanlı bir önbellekte tutar. İşlev ilk kez çağrıldığında ve ardından ölçeklendiğinde Lambda, işlevi sıfırdan başlatmak yerine önbelleğe alınmış yedekten sürdürerek daha düşük bir başlatma gecikmesi sağlar. Lambda SnapStart, başlatma gecikmesini azaltırken en iyi çalışma optimizasyonu olarak çalışır ve soğuk başlatmaların ortadan kaldırılacağını garanti etmez. Uygulamanızın katı gecikme gereksinimleri varsa ve çift haneli milisaniye başlatma süreleri gerektiriyorsa Tedarik Edilen Eş Zamanlılık'ı kullanmanızı tavsiye ederiz.

Lambda SnapStart, Java 11 çalışma zamanını destekler. Java'nın gelecek sürümleri, yayınlandıktan sonra desteklenecektir. Lambda tarafından desteklenen tüm çalışma zamanları için Lambda çalışma zamanları belgelerine göz atın.

Hayır. Lambda SnapStart ve Tedarik Edilen Eş Zamanlılık aynı anda, aynı işlevde etkinleştirilemez.

Evet. Bir Lambda SnapStart işlevini, Sanal Özel Bulut'taki (VPC) kaynaklara erişecek şekilde yapılandırabilirsiniz. İşlevinizi bir VPC ile yapılandırma hakkında daha fazla bilgi için Lambda belgelerine göz atın.

Hayır. Lambda SnapStart'ı şu anda yalnızca x86 mimarisinde çalışan işlevler için yapılandırabilirsiniz.
Hayır. Şu anda Lamba SnapStart'ı Amazon EFS ile etkinleştiremezsiniz.
Hayır. Lambda SnapStart'ı 512 MB'ın üzerindeki daha geniş kısa ömürlü depolama (/tmp) ile şu anda etkinleştirebilirsiniz.

Evet. Kodunuz, durum benzersizliğini varsayarsa kodunuzun anlık yedek işlemlerine (klonlanma ve sürdürülme gibi) dayanıklılığını değerlendirmeniz gerekir. Lambda SnapStart ile benzersizlik hususları hakkında daha fazla bilgi edinmek için Lambda SnapStart ile VM anlık yedeklerinde benzersizliği anlamaya ilişkin belgelere ve bloga göz atın.

Evet. Bir anlık yedek oluşturmadan (kontrol noktası belirlemeden) önce ve çalışma zamanı kancalarını kullanarak bir anlık yedeği geri yükledikten sonra kendi yazılım mantığınızı uygulayabilirsiniz. Daha fazla bilgi edinmek için Lambda SnapStart belgelerine göz atın.

Hayır. Lambda SnapStart'ı etkinleştirmek için ek ücret uygulanmaz. Geçerli Lambda Fiyatlandırması'na göre işlevlerinize yönelik istek sayısına ve kodunuzun yürütüldüğü süreye göre ücretlendirilirsiniz. Süre ücreti bir işlevin işleyicisinde ve çalışma zamanı kancalarında çalışan kod ve işleyici dışında belirtilen başlatma kodu için geçerlidir. Lütfen AWS Lambda'nın yürütme ortamlarını güvenlik düzeltme ekleriyle düzenli olarak geri dönüştürebileceğini ve başlatma kodunuzu yeniden çalıştırabileceğini unutmayın. Daha fazla bilgi edinmek için Lambda Programlama Modeli belgelerine göz atın.

Lambda SnapStart ile Lambda, yayınlanan sürümler çağrı almaya devam ettiği sürece, yayınlanan son üç işlev sürümü için başlatılan yürütme ortamının bir anlık yedeğini tutar. Yayınlanmış bir işlev sürümüyle ilişkili anlık yedeğin süresi, 14 günden uzun süre devre dışı kalırsa sona erer.

Anlık yedekler, varsayılan olarak Lambda hizmetine ait olan ve bu hizmet tarafından yönetilen müşteriye özel AWS Anahtar Yönetimi Hizmeti (KMS) ile şifrelenir. Müşteriler, anlık yedekleri müşteriye ait olan ve müşteri tarafından yönetilen bir KMS anahtarını kullanarak da şifreleyebilir.

Lambda SnapStart için izin verilen maksimum başlatma süresi, işleviniz için yapılandırdığınız yürütme zaman aşımı süresiyle aynıdır. Bir işlev için yapılandırılabilir maksimum yürütme zaman aşımı sınırı 15 dakikadır.

Tedarik Edilen Eş Zamanlılık

Eş Zamanlı Tedarik, sunucusuz uygulamalarınızın performansı üzerinde daha iyi bir kontrol sağlar. Etkinleştirildiğinde, Eş Zamanlı Tedarik, işlevleri başlatır ve çift basamaklı milisaniyelerde yanıt vermeye hazır olarak tutar.

İşlevinizdeki eş zamanlılığı AWS Management Console, Lambda API, AWS CLI ve AWS CloudFormation üzerinden yapılandırabilirsiniz. Eş Zamanlı Tedarikten yararlanmanın en kolay yolu, AWS Auto Scaling kullanmaktır. Zamanlamaları yapılandırmak için Application Auto Scaling’i kullanabilir veya Auto Scaling’in talep değiştikçe gerçek zamanlı Eş Zamanlı Tedarik seviyesini otomatik olarak ayarlamasını sağlayabilirsiniz. Tedarik Edilen Eş Zamanlılık hakkında daha fazla bilgi edinmek için belgeler bölümüne göz atın.

Eş Zamanlı Tedarik kullanmak için kodunuzda değişiklik yapmanız gerekmez. Mevcut tüm fonksiyonlar ve programlarla sorunsuz bir şekilde çalışır. Eş Zamanlı Tedarik kullanırken, Lambda'nın çalıştırılma ve yürütme modelinde herhangi bir değişiklik olmaz.

Eş Zamanlı Tedarik, işlevleri kullanıma hazır tutmak için "Eş Zamanlı Tedarik" fiyatlandırma boyutu ekler. Etkinleştirildiğinde, yapılandırdığınız eş zamanlılık miktarına ve yapılandırdığınız süreye göre ödeme yaparsınız. İşleviniz, Eş Zamanlı Tedarik yapılandırılmışken çalışırsa, İstekler ve çalışma süresi için ödeme yaparsınız. Tedarik Edilen Eş Zamanlılık fiyatlandırması hakkında daha fazla bilgi edinmek için AWS Lambda Fiyatlandırması'na göz atın.

Eş Zamanlı Tedarik, web veya mobil arka uçlar, eş zamanlı olarak çağrılan API'ler ve etkileşimli mikro servisler gibi gecikmeye duyarlı uygulamalar oluşturmak için idealdir. Uygulamanızın özel ihtiyaçlarına göre eş zamanlılık miktarını kolayca yapılandırabilirsiniz. Yüksek talebin olduğu zamanlarda eş zamanlılık miktarını yükseltebilir, talep azaldığında ise azaltabilir veya tamamen kapatabilirsiniz.
Bir işlevin eş zamanlılığı yapılandırılan düzeye ulaşırsa, işlevin sonraki çağrıları, normal Lambda işlevlerinin gecikme ve ölçek özelliklerini alır. İşlevinizi yalnızca yapılandırıldığı seviyeye kadar ölçeklendirilecek şekilde kısıtlayabilirsiniz. Bu şekilde yapılandırmak, işlevin yapılandırılan Eş Zamanlı Tedarik seviyesini aşmasını önler. Bu durum, talep beklenen miktarı aştığında, uygulamanızdaki istenmeyen değişkenliği önleyen bir mekanizmadır.

Graviton2 işlemciler tarafından desteklenen AWS Lambda işlevleri

AWS Lambda, işlevlerinizi x86 tabanlı veya Arm tabanlı işlemcilerde çalıştırmanızı sağlar. AWS Graviton2 işlemciler, bulut iş yüklerinizde yüksek fiyat performansı sunmak üzere 64 bit Arm Neoverse çekirdekler kullanılarak Amazon Web Services tarafından özel olarak geliştirilmiştir. Müşteriler, sunucu tedarik etmeden veya yönetmeden kod çalıştırma, otomatik ölçeklendirme, yüksek erişilebilirlik ve yalnızca kullandığınız kaynaklar için ödeme yapma gibi AWS Lambda'da sunulan aynı avantajlara sahip olur.
AWS tarafından tasarlanan Arm tabanlı bir işlemci mimarisinin kullanıldığı Graviton2 tarafından desteklenen AWS Lambda işlevleri; web ve mobil arka uçları, veri ve akış işleme gibi çeşitli sunucusuz iş yükleri için x86 işlemcilerde çalışan işlevlere kıyasla %34'e kadar daha iyi fiyat performansı sunmak üzere tasarlanmıştır. Daha düşük gecikme süresi, %19'a kadar daha iyi performans, %20 daha düşük maliyet ve şu anda AWS'de bulunan en yüksek güç verimliliği ile Graviton2 işlevleri, görev açısından kritik öneme sahip sunucusuz uygulamaları destekleyebilir. Müşteriler, hem mevcut hem de yeni işlevleri Graviton2 işlemciyi hedefleyecek şekilde yapılandırabilir. Graviton2'de çalışan işlevleri zip dosyaları veya container görüntüleri olarak dağıtabilirler.
AWS Management Console, AWS Lambda API, AWS CLI ve AWS CloudFormation ile işlevinizin mimari işaretini "arm64" şeklinde ayarlayarak işlevleri Graviton2 üzerinde çalışacak şekilde yapılandırabilirsiniz.
x86 tabanlı ve Arm tabanlı işlevler arasında herhangi bir değişiklik yoktur. Kodunuzu AWS Management Console, zip dosyası veya container görüntüsü aracılığıyla yüklediğinizde AWS Lambda, altyapı tedarik etmenize veya yönetmenize gerek kalmadan tetiklendiğinde kodunuzu otomatik olarak çalıştırır.
Bir uygulama, her iki mimaride de çalışan işlevleri içerebilir. AWS Lambda, işlevinizin mevcut sürümünün mimarisini ("x86_64" veya "arm64") değiştirmenizi sağlar. İşlevinizin belirli bir sürümünü oluşturduktan sonra mimari değiştirilemez.

Python, Java ve Node gibi yorumlanan diller, kodunuz mimariye özgü bileşenleri kullanan kitaplıklara başvurmadıkça genellikle yeniden derleme gerektirmez. Bu gibi durumlarda arm64'ü hedefleyen kitaplıkları tedarik etmeniz gerekir. Diğer ayrıntıları öğrenmek için lütfen AWS Graviton'u kullanmaya başlama sayfasına göz atın. Yorumlanmayan diller, kodunuzu arm64'ü hedefleyecek şekilde derlemenizi gerektirir. Daha modern derleyiciler, arm64 için derlenmiş kod üretecek olsa da bunu test etmek için Arm tabanlı bir ortama dağıtmanız gerekecektir. Graviton2 ile Lambda işlevlerini kullanma hakkında daha fazla bilgi edinmek için lütfen belgelere göz atın.

Hayır. Her işlev sürümü, yalnızca tek bir container görüntüsü kullanabilir.
Evet. Katmanlar ve uzantılar, "x86_64" veya "arm64" uyumlu mimarilere hedeflenebilir. İşlevler ve katmanlar için varsayılan mimari "x86_64" mimarisidir.

Müşteriler, lansmanda Python, Node.js, Java, Ruby, .Net Core, Özel Çalışma Zamanı (provided.al2) ve OCI Base görüntülerini kullanabilir. Daha fazla bilgi edinmek için lütfen AWS Lambda Çalışma Zamanlarına göz atın.

AWS Graviton2 işlemciler tarafından desteklenen AWS Lambda işlevleri, x86 tabanlı Lambda işlevlerine göre %20 daha hesaplıdır. Lambda ücretsiz kullanım, x86 ve Arm tabanlı mimariler tarafından desteklenen AWS Lambda işlevleri için geçerlidir.

Her iş yükü benzersizdir ve müşterilerin görebilecekleri fiyat performansı artışını belirlemek için işlevlerini test etmelerini öneririz. Bunun için AWS Lambda Power Tuning aracını kullanmanızı öneririz. Potansiyel fiyat performansı iyileştirmeleri için iş yüklerinizi test ederken web ve mobil arka uçları, veri ve akış işleme ile başlamanızı öneririz.

AWS Lambda için Amazon EFS

AWS Lambda için Amazon Elastic File System (Amazon EFS) ile müşteriler, kaynak tedariki veya kapasite yönetimi ihtiyacı olmadan talep üzerine ölçeklendirilebilen, tamamen yönetilen esnek bir NFS dosya sistemi kullanarak büyük hacimli verileri neredeyse her ölçekte güvenli bir şekilde okuyabilir, yazabilir ve kalıcı hale getirebilir. Geliştiriciler daha önce, 512 MB ile sınırlı olmak şartıyla S3'ten veya veritabanlarından yerel geçici depolama alanına veri indirmek için işlevlerine kod ekliyordu. Lambda for EFS ile geliştiricilerin, verileri işlemek üzere geçici depolama alanına indirmek için kod yazması gerekmez.

Geliştiriciler; konsol, CLI veya SDK ile mevcut bir EFS dosya sistemini EFS Erişim Noktası üzerinden bir Lambda işlevine kolayca bağlayabilir. İşlevler ilk kez çağrıldığında dosya sistemi otomatik olarak bağlanır ve işlev kodu tarafından kullanılabilir hale gelir. Daha fazla bilgi için belgelere bakabilirsiniz.

Evet. Amazon EFS için bağlama hedefleri, VPC'de bir alt ağla ilişkilendirilir. Bu VPC'ye erişmek için AWS Lambda işlevinin yapılandırılması gerekir.
Lambda için EFS'nin kullanılması, makine öğrenimi uygulamaları oluşturmak, büyük referans dosyaları veya modeller yüklemek, büyük miktarlarda veriyi işlemek ya da yedeklemek, web içeriği barındırmak veya dahili derleme sistemleri geliştirmek için idealdir. Müşteriler, durum bilgisi olan bir mikro hizmet altyapısındaki çağrılar arasında durumu bir Step Functions iş akışında tutmak veya sunucusuz uygulamalar ile bulut sunucusu veya container tabanlı uygulamalar arasında dosya paylaşmak üzere Lambda için EFS'yi kullanabilir.
Evet. Taşıma durumunda veri şifreleme için sektör standardı olan Aktarım Katmanı Güvenliği (TLS) 1.2 kullanılarak AWS Lambda işlevleri ile Amazon EFS dosya sistemleri arasındaki veri alışverişi şifrelenir.
Müşteriler, verilerini bekleme durumundayken şifrelemek için Amazon EFS'yi kullanabilir. Bekleme durumunda şifrelenen veriler yazılma sırasında şeffaf bir şekilde şifrelenir ve okunma sırasında şifresi şeffaf bir şekilde çözülür. Bu sayede uygulamalarınızı değiştirmenize gerek kalmaz. Şifreleme anahtarları AWS Key Management Service (KMS) tarafından yönetilir ve bu da güvenli anahtar yönetim altyapısı oluşturma ve bakımını yapma gereksinimini ortadan kaldırır.

AWS Lambda için Amazon EFS kullanımı için ek ücret uygulanmaz. Müşteriler AWS Lambda ve Amazon EFS için standart fiyat öder. Lambda ve EFS'yi aynı erişilebilirlik alanında kullanırken müşteriler, veri transferi için ücretlendirilmez. Ancak Hesaplar Arası erişim için VPC eşlemeyi kullanırlarsa veri transferi ücretleri uygulanır. Daha fazla bilgi edinmek için lütfen Fiyatlandırma sayfasına göz atın.

Hayır. Her Lambda işlevi bir EFS dosya sistemine erişebilir.
Evet. Amazon EFS; Lambda işlevlerini, ECS ile Fargate container'larını ve EC2 bulut sunucularını destekler. Aynı dosya sistemini paylaşabilir ve her işlevin, container'ın veya bulut sunucusunun nelere erişebildiğini denetlemek için IAM politikası ve Erişim Noktalarını kullanabilirsiniz.  

Lambda İşlevi URL'leri

Evet. Lambda işlevleri tarayıcı, curl ve herhangi bir HTTP istemcisi kullanılarak çağrılabilen yerleşik bir HTTPS uç noktası olan işlev URL'si ile yapılandırılabilir. İşlev URL'leri, HTTPS üzerinden erişilebilir işlevleri geliştirmeye başlamak için kolay bir yöntemdir.

İşleviniz için işlev URL'sini AWS Management Console, AWS Lambda API, AWS CLI, AWS CloudFormation ve AWS Serverless Application Model aracılığıyla yapılandırabilirsiniz. İşlev URL'leri işlevinizin $LATEST nitelenmemiş sürümünde veya herhangi bir işlev diğer adında etkinleştirilebilir. Bir işlev URL'sini yapılandırma hakkında daha fazla bilgi edinmek için belgelere bakın.

Lambda işlevi URL'lerinin güvenliği IAM yetkilendirmesi ile varsayılan olarak sağlanır. Genel bir uç nokta oluşturmak için veya işlevin iş mantığının bir parçası olarak özel yetkilendirme uygulamayı planlıyorsanız, IAM yetkilendirmesini devre dışı bırakmayı tercih edebilirsiniz.
İşlevinizi web tarayıcınız üzerinden Lambda URL'sine giderek, istemci uygulamanızın kodu üzerinden bir HTTP kitaplığı kullanarak veya komut satırı üzerinden curl kullanarak kolaylıkla çağırabilirsiniz.

Evet. Lambda işlevi URL'leri bir işlev veya işlev diğer adı üzerinde etkinleştirilebilir. Herhangi bir diğer ad belirtilmemişse, URL varsayılan olarak $LATEST öğesine yönlendirir. İşlev URL'leri herhangi bir bağımsız işlev sürümünü hedefleyemez.

İşlev URL'leri ile şu anda özel etki alanı adları desteklenmemektedir. Özel etki alanınızı CloudFront dağıtım adınızla eşlemek için Amazon CloudFront dağıtımı ve CNAME oluşturarak işlev URL'nizle özel bir etki alanı kullanabilirsiniz. Ardından, yönlendirilecek CloudFront dağıtım etki alanı adınızı başlangıç noktası olarak işlev URL'nizle eşleyin.
Evet, işlev URL'leri VPC'de işlev çağırmak amacıyla kullanılabilir.

İşlev URL’leri kullanımı için ek ücret uygulanmaz. AWS Lambda için standart fiyatı ödersiniz. Daha fazla bilgi edinmek için lütfen AWS Lambda Fiyatlandırmasına göz atın.

Lambda@Edge

Lambda@Edge, sunucu tedarik etmenize veya yönetmenize gerek kalmadan küresel olarak farklı AWS konumlarında kod çalıştırarak son kullanıcılara en düşük ağ gecikme süresiyle yanıt vermenize imkan tanır. Tek yapmanız gereken Node.js veya Python kodunuzu AWS Lambda'ya yüklemek ve işlevinizi Amazon CloudFront isteklerine (ör. bir görüntüleyici isteği geldiğinde, bir istek kaynağa iletildiğinde veya kaynaktan döndürüldüğünde ve son kullanıcıya yanıt verilmeden hemen önce) karşılık olarak tetiklenecek şekilde yapılandırmaktır. Bunu yaptığınızda kod, bir içerik isteği alındığında küresel olarak farklı AWS konumlarında yürütülmeye hazır olur ve küresel olarak CloudFront istek hacmine göre ölçeklendirilir. Daha fazla bilgi edinmek için belgelerimize göz atın.

Lambda@Edge’i kullanmak için kodunuzu AWS Lambda’ya yüklemeniz ve Amazon CloudFront isteklerine yanıt olarak tetiklenecek bir işlev sürümüyle ilişkilendirmeniz yeterlidir. Kodunuzun Lambda@Edge hizmet sınırlarına uygun olması gerekir. Lambda@Edge şu anda CloudFront olayları tarafından yapılan küresel olarak çağırma için Node.js ve Python desteği sunmaktadır. Daha fazla bilgi edinmek için belgelerimize göz atın.

Lambda@Edge, son görüntüleyicilerinizin dünyanın farklı yerlerinde bulunduğu ve gecikme açısından hassas durumlarda kullanılmak üzere optimize edilmiştir. Karar vermek için ihtiyacınız olan tüm bilgilerin CloudFront ucunda, işlevin ve isteğin içinde mevcut olması gerekir. Bu da kullanıcı özelliklerine (konum, istemci cihazı vb.) göre karar vermeye çalıştığınız kullanım durumlarının artık merkez sunucuya yönlendirilmeden kullanıcılarınıza yakın konumda yürütülüp sunulabileceği anlamına gelmektedir.

Lambda@Edge hizmet gereksinimlerine ve sınırlarına uygun var olan Lambda işlevlerinizi küresel çapta çağırma için CloudFront olaylarıyla ilişkilendirebilirsiniz. İşlevinizin özelliklerini güncelleme hakkında bilgi edinmek için buraya bakabilirsiniz.

İşlevleriniz aşağıdaki Amazon CloudFront olayları gerçekleştiğinde otomatik olarak tetiklenir:

  • Görüntüleyici İsteği - Bu olay, internetteki bir son kullanıcı veya cihaz CloudFront'a bir HTTP(S) isteği gönderdiğinde ve istek bu kullanıcıya en yakın uç konumuna ulaştığında gerçekleşir.
  • Görüntüleyici Yanıtı - Bu olay, uçtaki CloudFront sunucusu isteği gerçekleştiren son kullanıcıya veya cihaza yanıt vermeye hazır olduğunda gerçekleşir.
  • Kaynak İsteği - Bu olay, istenen nesne CloudFront uç sunucusunun önbelleğinde zaten yoksa ve görüntüleyici isteği arka uç kaynak web sunucunuza (ör. Amazon EC2 veya Application Load Balancer ya da Amazon S3) gönderilmeye hazırsa gerçekleşir.
  • Kaynak Yanıtı - Bu olay, uçtaki CloudFront sunucusu arka uç kaynak web sunucunuzdan bir yanıt aldığında gerçekleşir.

Fark, API Gateway ve Lambda’nın bölgesel hizmetler olmalarıdır. Lambda@Edge ile Amazon CloudFront hizmetlerini birlikte kullanarak son görüntüleyicilerinizin bulunduğu yere göre birden fazla AWS konumunda mantık yürütebilirsiniz.

Ölçeklenebilirlik ve erişilebilirlik

AWS Lambda, hem hizmet hem de çalıştırdığı Lambda işlevleri için yüksek oranda erişilebilirlik sunma amacıyla replikasyon ve yedeklilik özelliklerinden faydalanacak şekilde tasarlanmıştır. İkisi için de bakım aralığı veya planlı kesinti süresi yoktur.
Evet. Bir Lambda işlevini güncellediğinizde genelde bir dakikadan kısa bir süre boyunca istekler işlevinizin eski veya yeni sürümü tarafından yanıtlanabilir.

Hayır. AWS Lambda, işlevinizi içeren çok sayıda bulut sunucusunu paralel olarak çalıştıracak şekilde tasarlanmıştır. Ancak AWS Lambda, bölge ve hesap başına geçerli olan varsayılan zaman uyumlu çalıştırma sayısı kısıtlamasına sahiptir (varsayılan güvenlik kısıtlamaları hakkında bilgi için bu sayfayı ziyaret edin). Ayrıca bağımsız AWS Lambda işlevleri için maksimum eş zamanlı yürütme sayısını kontrol ederek hesabınızın eş zamanlı yürütme sınırının bir bölümünü kritik işlevler için ayırabilir veya aşağı akış kaynakları için trafik hızını sınırlandırabilirsiniz.

Eş zamanlı yürütme sınırını artırmak için bir istek göndermek isterseniz sınır artırma isteği talep etmek için Hizmet Kotaları'nı kullanabilirsiniz.

Maksimum eş zamanlı yürütme sınırını aşmanız durumunda eş zamanlı olarak çağrılan AWS Lambda işlevleri kısıtlama hatası (429 hata kodu) döndürür. Zaman uyumsuz olarak çağrılan Lambda işlevleri yaklaşık 15-30 dakika boyunca makul trafik artışlarını kabul edebilir ancak sonrasında olaylar kısıtlama nedeniyle reddedilecektir. Lambda işlevinin Amazon S3 olaylarına yanıt olarak çağrılması durumunda AWS Lambda tarafından reddedilen olaylar S3 tarafından 24 saat boyunca tutulabilir ve yeniden denenebilir. Amazon Kinesis Streams ve Amazon DynamoDB Streams olayları, Lambda işlevi başarılı olana veya verilerin süresi dolana kadar yeniden denenir. Amazon Kinesis ve Amazon DynamoDB Akışları, verileri 24 saat boyunca saklar.

Varsayılan maksimum eş zamanlı yürütme sınırı, hesap düzeyinde uygulanır. Ancak her işlev için ayrı olarak da sınırlar belirleyebilirsiniz (Rezerve Eş Zamanlılık hakkında bilgi almak için bu sayfaya göz atın).

Eş zamanlı olarak çağrılan her Lambda işlevi, her 10 saniyede bir 1.000 eş zamanlı yürütme hızında ölçeklendirilebilir. Lambda'nın ölçeklendirme oranı çoğu kullanım örneği için uygun olsa da, özellikle öngörülebilen veya öngörülemeyen trafik artışlarına sahip olanlar için idealdir. Örneğin SLA'ya bağlı veri işlemede, işleme talebini karşılamak için öngörülebilir ancak hızlı ölçeklendirme gerekir. Benzer şekilde, son dakika haberleri veya kısa süreli indirimler sunmak, kısa sürede öngörülemeyen trafik seviyelerini artırabilir. Lambda'nın ölçeklendirme oranı, ek yapılandırmalar veya araçlar olmadan bu tarz kullanım örneklerini kolaylaştırabilir. Ayrıca eş zamanlılık ölçeklendirme sınırı, işlev düzeyinde bir sınırdır. Bu, hesabınızdaki her işlevin diğer işlevlerden bağımsız olarak ölçeklendirildiği anlamına gelir.

Zaman uyumlu olarak çağrılan Lambda işlevlerinin hata vermesi halinde özel durum oluşur. Zaman uyumsuz olarak çağrılan Lambda işlevleri için en az 3 deneme yapılır. Amazon Kinesis Streams ve Amazon DynamoDB Streams olayları, Lambda işlevi başarılı olana veya verilerin süresi dolana kadar yeniden denenir. Kinesis ve DynamoDB akışları, verileri en az 24 saat boyunca tutar.
Bir Amazon SQS kuyruğunu veya Amazon SNS konusunu teslim edilmeyen iletiler sırası olarak yapılandırabilirsiniz.

Zaman uyumsuz çağrılar için yeniden deneme politikasını aşmanız durumunda olayın yerleştirilebileceği bir “teslim edilmeyen iletiler sırası” (dead letter queue – DLQ) yapılandırabilirsiniz. DLQ yapılandırılmadığında olay reddedilebilir. Akış tabanlı çağrılar için yeniden deneme politikasını aşmanız durumunda verilerin süresi zaten dolmuş olur ve bu nedenle olay reddedilir.

Güvenlik ve erişim denetimi

Lambda işlevinize diğer kaynaklara erişim izni vermek için IAM rollerini kullanabilirsiniz. AWS Lambda, Lambda işlevinizi çalıştırırken bu role büründüğünden işlevin kullanabileceği AWS kaynakları üzerinde her zaman tam ve güvenli denetim sahibi olursunuz. Roller hakkında daha fazla bilgi edinmek için AWS Lambda Kurulumu sayfasını ziyaret edin.

Bir Amazon S3 klasörünü bir AWS Lambda işlevine ileti gönderecek şekilde yapılandırdığınızda, erişim sağlayan bir kaynak politikası kuralı oluşturulur. Lambda işlevleri için kaynak politikaları ve erişim denetimleri hakkında daha fazla bilgi edinmek için Lambda Geliştirici Kılavuzu'nu ziyaret edin.

Erişim denetimleri, Lambda işlev rolüyle yönetilir. Lambda işlevinize atadığınız rol, AWS Lambda'nın onun adına yoklayabileceği kaynakları da belirler. Daha fazla bilgi edinmek için Lambda Geliştirici Kılavuzu'nu ziyaret edin.

Erişim denetimleri, Lambda işlev rolü veya kuyruk için geçerli olan kaynak politikası ayarı ile yönetilebilir. İki politika da mevcutsa iki izinden daha sınırlı olan uygulanır.

İşlev yapılandırmanızın bir parçası olarak alt ağı ve güvenlik grubunu belirterek Lambda işlevlerinin VPC'nizdeki kaynaklara erişmesini sağlayabilirsiniz. Belirli bir VPC içindeki kaynaklara erişecek şekilde yapılandırılmış olan Lambda işlevleri, varsayılan yapılandırmada internet erişimine sahip olmaz. Bu işlevlere internet erişimi vermek için internet ağ geçitlerini kullanın. Varsayılan olarak Lambda işlevleri, IPv4 üzerinden çift yığınlı bir VPC'deki kaynaklarla iletişim kurar. İşlevlerinizi IPv6 üzerinden çift yığınlı bir VPC'deki kaynaklara erişecek şekilde yapılandırabilirsiniz. VPC ile yapılandırılmış Lambda işlevleri hakkında daha fazla ayrıntı için bkz. VPC ile Lambda Özel Ağı Oluşturma.

AWS Lambda için Kod İmzalama, Lambda işlevlerinizde sadece onaylı geliştiricilerden üzerinde değişiklik yapılmamış kodların dağıtılacağını doğrulamanıza olanak tanıyan güven ve bütünlük denetimleri sunar. Kod yapıtlarını dijital olarak imzalamaya yönelik tam olarak yönetilen bir kod imzalama hizmeti olan AWS Signer'ı kullanabilir ve Lambda işlevlerinizi dağıtım anında imzaları doğrulamak üzere yapılandırabilirsiniz. AWS Lambda için Kod İmzalama şimdilik sadece ZIP arşivi olarak paketlenmiş işlevlerde kullanılabilmektedir.

AWS Signer konsolu, Signer API'si, SAM CLI veya AWS CLI aracılığıyla bir İmzalama Profili kullanarak dijital olarak imzalanmış kod yapıtları oluşturabilirsiniz. Daha fazla bilgi edinmek için lütfen AWS Signer belgelerine göz atın.

AWS Management Console, Lambda API'si, AWS CLI, AWS CloudFormation ve AWS SAM aracılığıyla bir Kod İmzalama Yapılandırması oluşturarak kod imzalamayı etkinleştirebilirsiniz. Kod İmzalama Yapılandırması, onaylı imzalama profillerini belirtmenize ve imza denetimleri başarısız olduğunda uyarı verme veya dağıtımı reddetme arasında seçim yapmanıza yardımcı olur. Kod İmzalama Yapılandırmaları, kod imzalama özelliğinin etkinleştirilmesi için ayrı Lambda işlevlerine eklenebilir. Bu işlevler artık dağıtım anında imzaları doğrulamaya başlar.

AWS Lambda, dağıtım anında aşağıdaki imza denetimlerini gerçekleştirebilir:

• Bozuk imza - Bu hata, imzalama sonrasında kod yapıtı değiştirildiyse meydana gelir.
• Eşleşmeyen imza - Bu hata, kod yapıtı onaysız bir imzalama profili tarafından imzalandıysa meydana gelir.
• Süresi dolmuş imza - Bu hata, imzanın yapılandırılmış son kullanma tarihi geçtiyse meydana gelir.
• İptal edilmiş imza - Bu hata, imzalama profilinin sahibi imzalama işlerini iptal ettiyse meydana gelir.

Daha fazla bilgi edinmek için lütfen AWS Lambda belgelerine göz atın.

Evet, mevcut bir işleve kod imzalama yapılandırmasını ekleyerek bu işlevde kod imzalamayı etkinleştirebilirsiniz. Bunu AWS Lambda konsolu, Lambda API'si, AWS CLI, AWS CloudFormation ve AWS SAM kullanarak yapabilirsiniz.

AWS Lambda için Kod İmzalama kullanımına ilişkin ek maliyet uygulanmaz. AWS Lambda için standart fiyatı ödersiniz. Daha fazla bilgi edinmek için lütfen Fiyatlandırma sayfasına göz atın.

Gelişmiş günlük kaydı denetimleri

AWS Lambda, varsayılan olarak basitleştirilmiş ve gelişmiş bir günlük kaydı deneyimi sağlamak için Lambda işlevi günlüklerini JSON yapılandırılmış biçiminde yerel olarak yakalama, Lambda işlevi günlüklerinin günlük düzeyinde filtrelemesini herhangi bir kod değişikliği yapmadan denetleme ve Lambda'nın günlükleri gönderdiği Amazon CloudWatch günlük grubunu özelleştirme gibi gelişmiş günlük denetimleri sunar.

Lambda işlevi günlüklerini, kendi günlük kitaplıklarınızı kullanmak zorunda kalmadan JSON yapılandırılmış biçiminde yakalayabilirsiniz. JSON yapılandırılmış günlükleri, büyük hacimli günlük girişlerini aramayı, filtrelemeyi ve analiz etmeyi kolaylaştırır. Lambda işlevi günlüklerinin günlük düzeyinde filtrelemesini herhangi bir kod değişikliği yapmadan denetleyebilirsiniz. Bu özellik, hata ayıklama ve sorun giderme sırasında büyük hacimli günlükleri gözden geçirmeden Lambda işlevleri için gerekli günlük ayrıntı düzeyini seçmenize olanak tanır. Ayrıca Lambda'nın hangi Amazon CloudWatch günlük grubuna günlük göndereceğini de ayarlayabilirsiniz. Böylece bir uygulama içindeki birden çok işlevden günlükleri tek bir yerde toplamayı kolaylaştırabilirsiniz. Ardından güvenlik, yönetim ve saklama politikalarını her işleve ayrı ayrı değil, uygulama düzeyinde günlüklere uygulayabilirsiniz.

AWS Lambda API, AWS Lambda konsolu, AWS CLI, AWS Sunucusuz Uygulama Modeli (SAM) ve AWS CloudFormation kullanarak Lambda işlevleriniz için gelişmiş günlük denetimleri belirleyebilirsiniz. Daha fazla bilgi edinmek üzere gelişmiş günlük denetimleri için lansman blog gönderisini veya Lambda Geliştirici Kılavuzu'nu ziyaret edin.

Evet, JSON yapılandırılmış biçiminde Lambda günlükleri oluşturmak için kendi günlük kitaplıklarınızı kullanabilirsiniz. Günlük kitaplıklarınızın, Lambda'nın yerel JSON yapılandırılmış günlük kaydı özelliğiyle sorunsuz şekilde çalışmasını sağlamak için Lambda, işleviniz tarafından oluşturulan ve zaten JSON biçiminde kodlanmış günlükleri tekrar kodlamaz. Lambda günlüklerini JSON yapılandırılmış biçiminde yakalamak için AWS Lambda İçin Powertools kitaplığını da kullanabilirsiniz.

Lambda'da gelişmiş günlük denetimlerini kullanmak için ek ücret alınmaz. Amazon CloudWatch Günlükleri tarafından Lambda günlüklerinizin alınması ve depolanması için sizden ücret alınmaya devam edilir. Günlük fiyatlandırma ayrıntıları için CloudWatch fiyatlandırma sayfasına göz atın.

Java ile yazılan AWS Lambda işlevleri

Lambda işlevinizi derlemek için Maven veya Gradle gibi standart araçları kullanabilirsiniz. Derleme işleminiz, AWS SDK’ya bağımlı olan bir Java kodunu derleme süreciyle aynı adımları kapsamalıdır. Java derleme aracınızı kaynak dosyalarınızda çalıştırın ve sınıf yolunuzda geçişli bağımlılıklara sahip AWS SDK 1.9 veya üzeri bir sürümü dahil edin. Daha fazla bilgi için belgelerimize göz atın.

Lambda, openjdk 1.8 içeren Amazon Linux derlemesini sunmaktadır.

Node.js ile yazılan AWS Lambda işlevleri

Evet. NPM paketlerinin yanı sıra özel paketler de kullanabilirsiniz. Buradan daha fazla bilgi edinebilirsiniz.

Evet. Lambda’nın yerleşik korumalı alanı toplu (“kabuk”) betikleri, diğer dillerin çalışma zamanlarını, yardımcı program rutinlerini ve yürütülebilir dosyaları çalıştırmanızı sağlar. Buradan daha fazla bilgi edinebilirsiniz.

Evet. Yüklediğiniz ZIP dosyasına statik bağlantılı yerel modülleri ekleyebilir, Lambda işlevinizin kök dizinini gösteren rpath ile derlenmiş dinamik bağlantılı modüller kullanabilirsiniz. Buradan daha fazla bilgi edinebilirsiniz.

Evet. Node.js'nin child_process komutunu kullanarak işlevinize eklediğiniz ikili dosyaları veya Amazon Linux'ta bulunan ve işleviniz tarafından erişilebilen tüm yürütülebilir dosyaları çalıştırabilirsiniz. Alternatif olarak, node-ffmpeg gibi komut satırı ikili dosyalarını sarmalamanızı sağlayan farklı NPM paketlerinden de faydalanabilirsiniz. Buradan daha fazla bilgi edinebilirsiniz.

Node.js ile yazılmış bir Lambda işlevini dağıtmak için Javascript kodunuzu ve kodun bağımlı olduğu kitaplıkları ZIP dosyası halinde paketlemeniz yeterlidir. ZIP dosyasını yerel ortamınızdan yükleyebilir veya ZIP dosyasının bulunduğu Amazon S3 konumunu belirtebilirsiniz. Daha fazla bilgi için belgelerimize göz atın.

Python ile yazılan AWS Lambda işlevleri

Evet. Python paketlerini yüklemek için pip komutundan faydalanabilirsiniz.

C# ile yazılan AWS Lambda işlevleri

Çözüm Gezgini'nde Publish to AWS Lambda (AWS Lambda'ya Yayınla) öğesini seçip Visual Studio IDE kullanarak C# Lambda işlevi oluşturabilirsiniz. Alternatif olarak, [# Lambda CLI araçları düzeltme eki] yüklü dotnet CLI'dan "dotnet lambda publish" komutunu doğrudan çalıştırarak tüm NuGet bağımlılıkları ve kendi yayınladığınız DLL derlemeleri ile birlikte C# kaynak kodunuzun ZIP dosyasının oluşturulmasını ve "dotnetcore1.0" çalışma zamanı parametresiyle otomatik olarak AWS Lambda'ya yüklenmesini sağlayabilirsiniz.

Powershell ile yazılan AWS Lambda işlevleri

PowerShell Lambda dağıtım paketi, PowerShell komut dosyanızı, PowerShell komut dosyanız için gereken PowerShell modüllerini ve PowerShell Core'u barındırmak için gereken derlemeleri içeren bir ZIP dosyasıdır. Daha sonra PowerShell Lambda dağıtım paketinizi oluşturmak için PowerShell Galeri'den yükleyebileceğiniz AWSLambdaPSCore PowerShell modülünü kullanırsınız.

Go ile yazılan AWS Lambda işlevleri

Go yürütülebilir yapıtınızı AWS CLI veya Lambda konsolu aracılığıyla bir ZIP dosyası olarak yükleyin ve go1.x çalışma zamanını seçin. Lambda ile kodunuzu oluşturmak ve paketlemek için Go'nun yerel araçlarını kullanabilirsiniz. Daha fazla bilgi için belgelerimizi inceleyin

Ruby ile yazılan AWS Lambda işlevleri

Ruby ile yazılmış bir Lambda işlevini dağıtmak için Ruby kodunuzu ve gem görüntünüzü ZIP dosyası halinde paketlemeniz yeterlidir. ZIP dosyasını yerel ortamınızdan yükleyebilir veya ZIP dosyasının bulunduğu Amazon S3 konumunu belirtebilirsiniz.

Diğer konular

Desteklenen sürümlerin listesini buradan görüntüleyebilirsiniz.

Hayır. AWS Lambda, hizmeti kullanan herkese tek bir işletim sistemi ve yönetilen dil çalışma zamanı sürümü sunar. Lambda'da kullanmak için kendi dil çalışma zamanınızı getirebilirsiniz.

AWS Lambda, AWS CloudTrail’e entegre çalışır. AWS CloudTrail, hesabınızın API kullanımını gösteren günlük dosyalarını kaydedip Amazon S3 klasörüne teslim edebilir.

Birden fazla Lambda işlevinin çağrılmasını koordine etmek için Amazon Step Functions hizmetini kullanabilirsiniz. Birinin çıkışını diğerine ileterek birden fazla Lambda işlevini seri veya paralel düzende çalıştırabilirsiniz. Daha fazla bilgi edinmek için belgelerimizi inceleyin.

Evet. AWS Lambda, Advanced Vector Extensions 2 (AVX2) talimat setini destekler. Daha yüksek performans almak üzere uygulama kodunuzu bu talimat setini hedefleyecek şekilde nasıl derleyeceğiniz hakkında daha fazla bilgi edinmek için AWS Lambda geliştirici belgelerini ziyaret edin.