Genel

S: AWS Lambda nedir?

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 sayesinde hiçbir yönetim işlemi gerekmeden neredeyse 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 doğrudan web'den veya mobil uygulamadan çağırabilirsiniz.

S: Sunucusuz bilişim nedir?

Sunucusuz bilişim, 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.

S: AWS Lambda işlevleri hangi olaylarla tetiklenebilir?

Olay kaynaklarının tam listesi için lütfen belgeler sayfamızı inceleyin.

S: AWS Lambda’yı mı yoksa Amazon EC2’yi mi kullanmalıyım?

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

Amazon EC2 farklı bulut sunucusu tiplerinin 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 Service 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 durumlarda 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 bilişim 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.

S: AWS Lambda’da ne tür kodlar çalıştırabilirim?

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.

S: AWS Lambda hangi dilleri destekler?

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'i kullanarak dokümanlarımızı okuyun.

S: AWS Lambda’nın üzerinde çalıştığı altyapıya erişebilir miyim?

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.

S: AWS Lambda kodum için nasıl bir yalıtım sağlıyor?

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.

S: AWS Lambda kodumun güvenliğini nasıl sağlıyor?

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.

S: AWS Lambda, hangi AWS bölgelerinde kullanılabilir?

Lütfen AWS Global Altyapı Bölgeleri Tablosu’na bakın.

AWS Lambda işlevleri

S: AWS Lambda işlevi nedir?

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 bilişim 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 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.

S: AWS Lambda, işlev bulut sunucularını yeniden kullanır mı?

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 belgeler sayfamızı ziyaret edin. Kodunuzda bunun her zaman gerçekleştirileceği varsayımı bulunmamalıdır.

S: AWS Lambda işlevim için diskte geçici alana ihtiyacım olursa ne yapmalıyım?

Her Lambda işlevi kendi /tmp dizininde 500 MB kalıcı olmayan disk alanına sahip olur.

S: AWS Lambda işlevlerinin neden durum bilgisine sahip olmaması gerekiyor?

İş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.

S: AWS Lambda işlevi kodumda iş parçacıkları ve işlemler kullanabilir miyim?

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.

S: AWS Lambda işlev kodunun sınırlamaları nelerdir?

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.

S: Lambda konsolunu kullanarak nasıl AWS Lambda işlevi oluşturabilirim?

Node.js veya Python kullanıyorsanız AWS Lambda konsolundaki kod düzenleyiciyi kullanarak işlevlerinizin kodunu yazabilir, işlevlerinizi test edebilir ve sağlam, IDE benzeri bir ortamda 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.

S: Lambda CLI kullanarak nasıl AWS Lambda işlevi oluşturabilirim?

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.

S: AWS Lambda ortam değişkenlerini destekliyor mu?

Evet. AWS Lambda Konsolu, CLI veya SDK’larından kolayca ortam değişkeni oluşturabilir ve değiştirebilirsiniz. Ortam değişkenleri hakkında daha fazla bilgi için belgelere bakın.

S: Ortam değişkenlerinde hassas bilgi saklayabilir miyim?

Veritabanı parolaları gibi hassas bilgiler için AWS Key Management Service 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.

S: AWS Lambda işlevlerimi nasıl yönetebilirim?

AWS Lambda konsolundaki panoyu kullanarak Lambda işlevlerinizi kolayca listeleyebilir, silebilir, güncelleyebilir ve izleyebilirsiniz. AWS CLI ve AWS SDK ile de Lambda işlevlerinizi yönetebilirsiniz. Daha fazla bilgi için Lambda Yazılım Geliştirme Kılavuzu’nu ziyaret edin.

S: Kodları işlevler arasında paylaşabilir miyim?

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.

S: Bir AWS Lambda işlevini nasıl izleyebilirim?

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.

S: Bir AWS Lambda işlevindeki hataları nasıl giderebilirim?

AWS Lambda, Amazon CloudWatch günlüklerine 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.

S: Bir AWS Lambda işlevini nasıl ölçeklendirebilirim?

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.

S: İşlem kaynakları AWS Lambda işlevlerine nasıl atanı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.

S: AWS Lambda işlevlerini ne zaman 3.008 MB'tan fazla bellekle birlikte kullanmalıyım?

Yoğun bellek veya işlem gerektiren iş yükleri çalıştıran müşteriler artık işlevlerini güçlendirebilmektedir. 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 işlem gerektiren uygulamalar için idealdir.

S: Bir AWS Lambda işlevi ne kadar süreyle yürütülebilir?

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.

S: AWS Lambda işlevleri kullanımım için nasıl ücret uygulanır?

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

S: Compute Savings Plan ile AWS Lambda'da para tasarrufu sağlayabilir miyim?

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.

S: AWS Lambda, sürüm oluşturmayı destekliyor mu?

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 belgesini okuyun.

S: Kodumu yükledim, AWS Lambda işlevini ne zaman çağırabilirim?

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.

S: Desteklenen kitaplıklar için kendi sürümümü kullanabilir miyim?

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 olaylarını işlemek için AWS Lambda’yı kullanma

S: Olay kaynağı nedir?

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 bir Amazon SQS kuyruğundaki kayıtları çekerek alınan iletilerin her biriyle bir Lambda işlevi yürütebilir.

AWS CloudTrail gibi birçok hizmet, olayları Amazon S3’te günlüğe kaydederek ve S3 klasör bildirimleri ile AWS Lambda işlevlerini tetikleyerek olay kaynağı görevi görebilir.

S: AWS Lambda ile hangi olay kaynakları kullanılabilir?

Olay kaynaklarının tam listesi için lütfen belgeler sayfamızı inceleyin.

S: AWS Lambda’da olaylar nasıl temsil edilir?

Olaylar, bir Lambda işlevine olay giriş parametresi olarak iletilir. Amazon SQS, Amazon Kinesis ve Amazon DynamoDB Akışları 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 için Amazon S3 Olayları İçin Bildirimleri Yapılandırma sayfasını ziyaret edin. Amazon DynamoDB Akışları hakkında daha fazla bilgi edinmek için DynamoDB Akışı Yazılım Geliştirme Kılavuzu sayfasını ziyaret edin. Amazon SNS kullanarak Lambda işlevlerini çağırma hakkında daha fazla bilgi için Amazon SNS Yazılım Geliştirme Kılavuzu sayfasını 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.

S: Bir AWS Lambda işlevinin bir Amazon S3 klasöründeki değişikliklere yanıt vermesini nasıl sağlayabilirim?

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.

S: Bir AWS Lambda işlevinin bir Amazon DynamoDB tablosunda değişikliklere yanıt vermesini nasıl sağlayabilirim?

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.

S: Bir AWS Lambda işlevini kullanarak bir Amazon Kinesis akışı içindeki kayıtları nasıl işleyebilirim?

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.

S: AWS Lambda, Amazon Kinesis ve Amazon DynamoDB akışlarından gelen verileri nasıl işler?

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.

S: Analiz ihtiyaçlarım için AWS Lambda ile Amazon Kinesis Data Analytics arasında nasıl seçim yapmalıyım?

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 Data Analytics size yinelenme olmadan tam olarak bir kere işlemeyle esnek işleme seçimleri ve sağlam 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ı

S: Bir AWS Lambda işlevinin Amazon Simple Notification Service (SNS) tarafından gönderilen bildirimlere yanıt vermesini nasıl sağlayabilirim?

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.

S: Bir AWS Lambda işlevinin Amazon Simple Email Service (SES) tarafından gönderilen e-postalara yanıt vermesini nasıl sağlayabilirim?

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.

S: Bir AWS Lambda işlevinin Amazon CloudWatch alarmlarına yanıt vermesini nasıl sağlayabilirim?

Ö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 Yazılım Geliştirme Kılavuzu’na bakın.

S: Bir AWS Lambda işlevinin Amazon Cognito tarafından yönetilen kullanıcı veya cihaz verilerindeki değişikliklere yanıt vermesini nasıl sağlayabilirim?

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.

S: Uygulamam bir AWS Lambda işlevini doğrudan nasıl tetikleyebilir?

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 için Lambda Yazılım Geliştirici Kılavuzu’nu ziyaret edin.

S: Bir olaya yanıt olarak bir AWS Lambda işlevi çağrıldığında ne kadar gecikme yaşanır?

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.

S: AWS Lambda kullanarak nasıl mobil arka uç oluşturabilirim?

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 Mobile SDK hakkında daha fazla bilgi edinmek için AWS Mobile SDK sayfasını ziyaret edin. Amazon API Gateway hakkında daha fazla bilgi edinmek için Amazon API Gateway sayfasını ziyaret edin.

S: Bir AWS Lambda işlevini HTTPS üzerinden nasıl çağırabilirim?

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.

S: AWS Lambda işlevim, davranışını isteği gönderen cihaza ve uygulamaya göre nasıl özelleştirebilir?

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.

S: AWS Lambda işlevim, davranışını bir uygulamanın son kullanıcısının kimliğine göre nasıl özelleştirebilir?

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.

S: AWS Lambda’yı kullanarak nasıl bir Alexa becerisi oluşturabilirim?

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.

S: Olay işleme sırasında işlevim hata verirse ne olur?

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 akışları 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

S: Sunucusuz uygulama nedir?

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.

S: Sunucusuz uygulamaları nasıl dağıtabilirim ve yönetebilirim?

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.

S: AWS topluluğu tarafından geliştirilmiş olan sunucusuz uygulamaları nasıl bulabilirim?

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

S: Sunucusuz uygulama için dağıtımı nasıl otomatikleştirebilirim?

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 belgelerimize bakın.

S: Sunucusuz uygulama oluşturmaya nasıl başlayabilirim?

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.

S: Birden fazla AWS Lambda işlevi arasındaki çağrıları nasıl koordine edebilirim?

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.

S: Sunucusuz bir uygulamanın sorunlarını nasıl giderebilirim?

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 için Lambda tabanlı uygulamalarla ilgili sorunları giderme sayfasını ziyaret edin. AWS X-Ray ücretleri geçerli olacaktır.

S: İlişkisel veritabanlarına bağlanan sunucusuz uygulamalar oluşturabilir miyim?

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

S: AWS SAM lisanslaması nasıl yapı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

S: AWS Lambda için Container Görüntüsü Desteği nedir?

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.

S: AWS Lambda için Container Görüntüsü Desteğini nasıl kullanabilirim?

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.

S: Hangi container görüntüsü türleri desteklenir?

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.

S: Hangi temel görüntüleri kullanabilirim?

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.

S: İşlevleri birer container görüntüsü olarak paketlemek ve dağıtmak için hangi container araçlarını kullanabilirim?

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.

S: Container görüntüleri olarak dağıtılmış işlevlerde hangi AWS Lambda özellikleri kullanılabilir?

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.

S: AWS Lambda, dağıtılmış container görüntüme düzeltme eki ve güncelleme uygular mı?

Şu anda değil. 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.

S: ZIP arşivleriyle ve container görüntüleriyle oluşturulan işlevler arasındaki farklar nelerdir?

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.

S: Zip ve container görüntüleri olarak tanımlanmış işlevler arasında performans farkı var mıdır?

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.

S: Lambda işlevlerini container görüntüleri olarak dağıtırken nasıl ücret uygulanır?

İş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.

S: Lambda Runtime Interface Emulator (RIE) nedir?

Lambda Runtime Interface Emulator, Lambda'nın müşterilere container görüntüsü olarak paketlenmiş Lambda işlevlerini yerel olarak test etme olanağı tanıyan Ç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'nın 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.

S: Yerel testler sırasında neden Lambda Runtime Interface Emulator'a (RIE) ihtiyacım var?

Ç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.

S: Öykünücü ile hangi davranışları yerel olarak test edebilirim?

İş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.

S: Runtime Interface Emulator (RIE), Lambda uyumlu görüntümü ilave işlem hizmetlerinde çalıştırmama nasıl yardımcı olur?

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.

S: Mevcut contailer'lı uygulamamı AWS Lambda'ya nasıl dağıtırım?

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.

Tedarik Edilen Eş Zamanlılık

S: AWS Lambda Eş Zamanlı Tedarik nedir?

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.

S: Eş Zamanlı Tedariki nasıl kurabilir ve yönetebilirim?

İşlevinizdeki eş zamanlılığı AWS Yönetim Konsolu, 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. Eş Zamanlı Tedarik hakkında daha fazla bilgi edinmek için belgeler bölümüne bakın.

S: Eş Zamanlı Tedarik kullanmak istersem kodumu değiştirmem gerekir mi?

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.

S: Eş Zamanlı Tedarik için nasıl ücretlendirileceğim?

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 bakın.

S: Ne zaman Eş Zamanlı Tedarik kullanmalıyım?

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.

S: Bir işlev, yapılandırılan Eş Zamanlı Tedarik seviyesinin üstünde çağrılırsa ne olur?

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.

AWS Lambda için Amazon EFS

S: AWS Lambda için Amazon EFS nedir?

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.

S: Lambda için Amazon EFS'yi nasıl ayarlayabilirim?

Geliştiriciler, konsol, CLI veya SDK ile mevcut bir EFS dosya sistemini EFS Access Point ü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.

S: Amazon EFS dosya sistemini kullanabilmek için VPC ayarlarımın işlevini yapılandırmam gerekiyor mu?

Evet. Amazon EFS için bağlama hedefleri, bir VPC'de alt ağlarla ilişkilendirilir. Bu VPC'ye erişmek için AWS Lambda işlevinin yapılandırılması gerekir.

S: Lambda için Amazon EFS'yi kimler kullanmalı?

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 StepFunctions 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.

S: Verilerim taşıma sırasında şifrelenecek mi?

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.

S: Verilerim bekleme durumundayken şifrelenir mi?

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.

S: AWS Lambda için Amazon EFS kullanımı nasıl ücretlendirilir?

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 bkz. Fiyatlandırma.

S: AWS Lambda işlevimle birden fazla Amazon EFS dosya sistemi ilişkilendirebilir miyim?

Hayır. Her Lambda işlevi bir EFS dosya sistemine erişebilir.

S: Birden fazla işlev, container ve bulut sunucusunda aynı Amazon EFS dosya sistemini kullanabilir miyim?

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 Uzantıları

S: AWS Lambda Uzantıları nedir?

AWS Lambda Uzantıları (Önizleme), Lambda'yı en sevdiğiniz izleme, gözlenebilirlik, güvenlik ve yönetim araçlarıyla entegre etmenize olanak tanır. Uzantılar, sizin ve tercih ettiğiniz araç satıcılarının Lambda'nın yaşam döngüsüyle bağlantı kurmasını ve Lambda yürütme ortamıyla daha derin bir entegrasyon gerçekleştirmesini sağlar.

S: Lambda uzantıları nasıl çalışır?

Uzantılar, işlev kodunuzun yürütüldüğü Lambda yürütme ortamında çalışan yardımcı işlemlerdir. Ek olarak, işlev çağırmanın dışında çalışabilirler. Yani uzantılar, işlev başlatılmadan önce başlatılır, işlevle paralel olarak çalışır ve işlev yürütmesi tamamlandıktan sonra çalışmayı sürdürebilir; ayrıca, yürütme ortamı Lambda hizmeti tarafından kapatılmadan önce de çalışabilir.

S: Lambda uzantılarını ne için kullanabilirim?

Uzantıları, AWS'nin yanı sıra şu çözüm ortakları tarafından sunulan en sevdiğiniz izleme, gözlenebilirlik, güvenlik ve yönetim araçları için kullanabilirsiniz: AppDynamics, Datadog, Dynatrace, Epsagon, HashiCorp, Lumigo, Check Point CloudGuard, New Relic, Thundra, AWS AppConfig, Amazon CloudWatch. Bu uzantılar hakkında daha fazla bilgi edinmek için başlatma blog gönderisini ziyaret edin.

S: Lambda uzantılarını nasıl ayarlayıp yönetebilirim?

CloudFormation, AWS Serverless Application Model ve Terraform gibi Konsol, CLI veya Altyapı Olarak Kod araçlarının kullanımıyla, bir veya daha fazla Lambda işlevinde Katmanlardan yararlanarak uzantıları dağıtabilirsiniz. Başlamak için belgeleri ziyaret edin. Önizleme aşamasında işlev başına en fazla 10 uzantı çalıştırabilirsiniz.

S: AWS Lambda uzantılarını hangi çalışma zamanlarıyla kullanabilirim?

Uzantıları şu çalışma zamanlarıyla kullanabilirsiniz: .NET Core 3.1 (C#/PowerShell) (dotnetcore3.1), Özel çalışma zamanı (provided), Amazon Linux 2'de özel çalışma zamanı (provided.al2), Java 11 (Corretto) (java11), Java 8 (Corretto) (java8.al2), Node.js 12.x (nodejs12.x), Node.js 10.x (nodejs10.x), Python 3.8 (python3.8), Python 3.7 (python3.7), Ruby 2.7 (ruby2.7), Ruby 2.5 (ruby2.5). Lambda Uzantıları ve uzantı sağladıkları işlevler farklı çalışma zamanlarını kullanabilir.

S: Uzantılar, dağıtım paketi sınırına dahil edilir mi?

Evet, sıkıştırması açılmış işlev boyutu ve tüm uzantıların toplamı, 250 MB olan sıkıştırması açılmış dağıtım paketi boyut sınırını aşamaz.

S: Uzantı kullanmanın performans üzerinde bir etkisi var mı?

Uzantılar; CPU, bellek ve depolama gibi kaynakları işlevle paylaştıkları ve işlev kodundan önce başlatıldıkları için işlevin performansını etkileyebilir. Örneğin, uzantı ve işlev kodu aynı CPU kaynaklarını paylaştığından, bir uzantı yüksek performanslı işlemler gerçekleştiriyorsa, işlevin yürütme süresinde artış olduğunu görebilirsiniz.

İşlev yürütüldükten sonra uzantı için gereken ekstra zamanı ölçmek üzere PostRuntimeExecutionDuration ölçümünü ve bellek kullanımındaki artışı ölçmek üzere MaxMemoryUsed ölçümünü kullanabilirsiniz. Belirli bir uzantının etkisini anlamak için Duration ölçümünü de kullanabilirsiniz. Şu anda işlev yürütmesi yanıtı; işlev ve uzantı yürütmesi tamamlandıktan sonra döndürülür. Daha fazla bilgi edinmek için Lambda geliştirici belgeleri sayfasını ziyaret edin.

S: Lambda uzantıları kullanımım için nasıl ücret uygulanır?

Uzantılar için Lambda işlevleriyle aynı faturalandırma modeli kullanılır. Lambda işlevlerini uzantılarla kullanırken, sunulan istek sayısına ve 1 ms artışlarla, kodunuz ile tüm uzantıları çalıştırmak için kullanılan toplam işlem süresine göre ödeme yaparsınız. İşlem süresi için mevcut Lambda süresi fiyatlandırmasına göre ücretlendirilirsiniz. Daha fazla bilgi edinmek için AWS Lambda fiyatlandırmasına bakın.

Lambda yaşam döngüsü üç farklı aşamadan oluşur: AWS Lambda’nın işlevi, bağımlılıkları ve uzantıları başlatması olan "init"; Lambda’nın tetikleyicilere yanıt olarak işlevi ve uzantı kodunu yürütmesi olan "invoke" ve işlev yürütmesinin tamamlanmış ancak uzantı kodunun hâlâ yürütüldüğü aşama olan "shut down". Lambda yaşam döngüsü hakkında daha fazla bilgi edinmek için Lambda Yürütme Ortamı belgelerine bakın.

Not: Bu önizleme duyurulduğu sırada, yalnızca Lambda yaşam döngüsünün "invoke" aşamasında kullanılan işlem süresi için ücretlendirilmenize neden olan bir sorun olduğu bilinmektedir. Bu sorun düzeltildikten sonra size ileriye dönük olarak tüm aşamalar için fatura kesilecektir, ancak bu sorun nedeniyle faturalandırılmayan aşamalar için sizden geriye dönük olarak ücret tahsil edilmeyecektir.

Çözüm ortağı teklifleri için ücret tahsil edilebilir ancak uzantı yüklemeleri için ek ücret alınmaz. Detaylar için ilgili çözüm ortağının web sitesine bakın.

S: Kendi özel Lambda uzantılarımı oluşturabilir miyim?

Evet, AWS Lambda Çalışma Zamanı Uzantıları API'sini kullanarak bunu yapabilirsiniz. Daha fazla bilgi edinmek için belgeleri ziyaret edin.

S: Tedarik Edilen Eş Zamanlılık etkinken uzantılar nasıl çalışır?

Eş Zamanlı Tedarik, işlevleri başlatır ve çift basamaklı milisaniyelerde yanıt vermeye hazır olarak tutar. Eş Zamanlı Tedarik etkinleştirildiğinde, uzantıları da başlatır ve işlev koduyla birlikte çalışmaya hazır olarak tutar.

S: Uzantıların hangi izinlere sahip olması gerekir?

Uzantılar, Lambda işleviyle aynı ortam içinde yürütüldüğünden, işlev ile aynı kaynaklara erişime sahiptir ve izinler, işlev ile uzantı arasında paylaşılır. Bu nedenle, kimlik bilgileri, rol ve ortam değişkenlerini paylaşır. Uzantılar, işlev koduna salt okunur erişime sahiptir ve /tmp dizininde okuma ve yazma işlemi yapabilir.

S: AWS Lambda Runtime Logs API nedir?

AWS Lambda Runtime Logs API, AWS Lambda işlevlerinden doğrudan seçtiğiniz bir hedefe günlükleri göndermek için uzantıları kullanmanıza olanak tanır. Uzantılar, Amazon CloudWatch Logs’a akışla gönderilen aynı günlüklere abone olmak için bu API’yi kullanır ve ardından bunları işleyebilir, filtreleyebilir ve tercih edilen herhangi bir hedefe gönderebilir.

S: Runtime Logs API nasıl çalışır?

Lambda hizmeti, günlükleri otomatik olarak kaydeder ve bunları Amazon CloudWatch’a aktarır. Bu akış, işlev kodunuzun içinden oluşturulan günlükleri ve ayrıca çalıştırmanın bir parçası olarak Lambda hizmeti tarafından oluşturulan günlükleri içerir.

Runtime Logs API, uzantı yazarlarının doğrudan Lambda yürütme ortamından aynı günlük akışlarına abone olmalarına olanak tanır. Abonelik talebini aldıktan sonra Lambda hizmeti, günlükleri HTTP veya TCP yoluyla uzantıya aktarır ve bunları CloudWatch’a gönderir.

S: Runtime Logs API’yi nasıl kullanmaya başlayabilirim?

Katmanları kullanarak Runtime Logs API kullanan uzantıları, CloudFormation, AWS Serverless Application Model ve Terraform gibi Konsol, CLI veya Altyapı Olarak Kod araçlarını kullanarak bir veya daha fazla Lambda işlevi üzerinde dağıtabilirsiniz.

Uzantıları, AWS'nin yanı sıra şu çözüm ortakları tarafından sunulan en sevdiğiniz izleme, gözlenebilirlik, güvenlik ve yönetim araçları için kullanabilirsiniz: Coralogix, Datadog, Honeycomb, Lumigo, New Relic, Sumo Logic, and Amazon CloudWatch. Bu uzantılar hakkında daha fazla bilgi edinmek için başlatma blog gönderisini ziyaret edin.

S: Runtime Logs API kullanmanın performans üzerinde bir etkisi var mı?

Runtime Logs API’yi yalnızca AWS Lambda Uzantıları içinden kullanabilirsiniz. Uzantılar; CPU, bellek ve depolama gibi kaynakları işlevle paylaştıkları ve işlev kodundan önce başlatıldıkları için işlevin performansını etkileyebilir. Örneğin, uzantı ve işlev kodu aynı CPU kaynaklarını paylaştığından, bir uzantı yüksek performanslı işlemler gerçekleştiriyorsa, işlevin yürütme süresinde artış olduğunu görebilirsiniz. Ayrıca, Runtime Logs API’ye her abonelik, günlükleri depolamak için, kendisini içeren uzantının ne tükettiğine ek olarak ek bellek tüketebilir.

S: Runtime Logs API kullanımım için nasıl ücret uygulanır?

AWS Lambda Runtime Logs API kullanımı için ek ücret uygulanmaz. Runtime Logs API’yi kullanan uzantılar, diğer uzantılar ve Lambda işlevleriyle aynı faturalandırma modelini paylaşır. Uzantıların fiyatlandırılması hakkında daha fazla bilgi için lütfen bkz. SSS.

S: Runtime Logs API kullanımı, Amazon CloudWatch Günlüklerine günlük göndermeyi devre dışı bırakır mı?

Hayır, varsayılan olarak, Lambda platformu tüm günlükleri CloudWatch Logs’a gönderir ve Runtime Logs API’yi kullanmak CloudWatch Logs’a ağ çıkışını devre dışı bırakmaz.

Lambda@Edge

S: Lambda@Edge nedir?

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.

S: Lambda@Edge’i nasıl kullanabilirim?

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.

S: Lambda@Edge’i hangi durumlarda kullanmalıyım?

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ı vs.) 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.

S: Var olan Lambda işlevlerimi küresel çapta çağrılacak şekilde dağıtabilir miyim?

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.

S: İşlevlerimi tetiklemek için hangi Amazon CloudFront olaylarını kullanabilirim?

İş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.

S: AWS Lambda@Edge ile Amazon API Gateway arkasında AWS Lambda kullanımı arasındaki fark nedir?

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

S: AWS Lambda işlevlerinin erişilebilirlik seviyesi nedir?

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.

S: Kodumu veya yapılandırmasını değiştirdiğimde AWS Lambda işlevlerim kullanılmaya devam edilebilir mi?

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.

S: Tek seferde çalıştırabileceğim AWS Lambda işlevi sayısında bir sınır var mı?

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 zaman uyumlu çalıştırma sayısını kontrol ederek hesabınızın zaman uyumlu çalışma 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.

Kısıtlama sınırını artırmak için bir istek göndermek isterseniz Destek Merkezi sayfasını ziyaret edebilir, "Open a new case" (Yeni olay aç) bağlantısına tıklayabilir ve hizmet sınırı artırma isteği oluşturabilirsiniz.

S: Hesabım varsayılan zaman uyumlu çalıştırma kısıtlama sınırını aşarsa ne olur?

Kısıtlama sınırını aşmanız durumunda zaman uyumlu 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 akışlarından ve Amazon DynamoDB akışlarından gelen 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 tutar.

S: Varsayılan sınır işlev düzeyinde mi uygulanır?

Hayır. Varsayılan sınır yalnızca hesap düzeyinde uygulanır.

S: Bir olay işlendiği sırada Lambda işlevim hata verirse ne olur?

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 akışlarından ve Amazon DynamoDB akışlarından gelen 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.

S: Lambda işlevi çağrılarım, kullanılabilir politika sınırlarını aşarsa ne olur?

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.

S: Bir Lambda işlevi için hangi kaynakları teslim edilmeyen iletiler sırası olarak yapılandırabilirim?

Bir Amazon SQS kuyruğunu veya Amazon SNS konusunu teslim edilmeyen iletiler sırası olarak yapılandırabilirsiniz.

Güvenlik ve erişim denetimi

S: AWS Lambda işlevimin diğer AWS kaynaklarına erişmesine nasıl izin verebilirim?

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.

S: Amazon S3 klasörleri tarafından çağrılacak AWS Lambda işlevlerini nasıl denetleyebilirim?

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 Yazılım Geliştirme Kılavuzu’nu ziyaret edin.

S: Bir AWS Lambda işlevinin yoklayabileceği Amazon DynamoDB tablosunu veya Amazon Kinesis akışını nasıl denetleyebilirim?

Erişim denetimleri, Lambda işlevinin 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 için Lambda Yazılım Geliştirici Kılavuzu’nu ziyaret edin.

S: Bir AWS Lambda işlevinin yoklayabileceği Amazon SQS kuyruğunu nasıl denetleyebilirim?

Erişim denetimleri, Lambda işlevinin 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.

S: AWS Lambda işlevimle Amazon VPC arkasındaki kaynaklara erişebilir miyim?

Evet. Amazon VPC arkasındaki kaynaklara erişebilirsiniz.

S: Lambda işlevim için VPC desteğini nasıl etkinleştirebilirim ve devre dışı bırakabilirim?

VPC desteğini etkinleştirmek için işlevinizin yapılandırmasında tek bir VPC içindeki bir veya daha fazla alt ağı ve bir güvenlik grubu belirtmeniz gerekir. VPC desteğini devre dışı bırakmak için işlev yapılandırmasını güncellemeniz ve alt ağ ile güvenlik grubu için boş bir liste belirtmeniz gerekir. Bu ayarları AWS API’leri, CLI veya AWS Lambda Management Console üzerinden değiştirebilirsiniz.

S: Tek bir Lambda işlevi birden fazla VPC’ye erişebilir mi?

Hayır. Lambda işlevleri yalnızca tek bir VPC’ye erişim sağlar. Birden fazla alt ağ belirtiliyorsa hepsinin aynı VPC’de olması gerekir. VPC’lerinizi eşleyerek diğer VPC’lere bağlanabilirsiniz.

S: Bir VPC içindeki Lambda işlevleri internete ve AWS Hizmeti uç noktalarına da erişebilir mi?

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. Harici uç noktalara erişmeniz gerekiyorsa VPC'nizde bir NAT oluşturarak bu trafiği yönlendirmeniz ve güvenlik grubunuzu da bu giden trafiğe izin verecek şekilde yapılandırmanız gerekir.

S: AWS Lambda için Kod İmzalama nedir?

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. Dijital olarak imzalanmış kod yapıtları oluşturmaya 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.

S: Dijital olarak imzalanmış kod yapıtlarını nasıl oluştururum?

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 bakın.

S: Kod imzalamayı etkinleştirmek için Lambda işlevlerimi nasıl yapılandırırım?

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.

S: AWS Lambda, dağıtım anında hangi imza denetimlerini gerçekleştirir?

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

• Bozuk imza - Bu hata, kod yapıtı imzalama sonrasında 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 bakın.

S: Mevcut işlevler için kod imzalamayı etkinleştirebilir miyim?

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.

S: AWS Lambda için Kod İmzalama kullanımı için ek maliyet uygulanır mı?

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 bkz. Fiyatlandırma.

Java ile yazılan AWS Lambda işlevleri

S: AWS Lambda işlevimi Java kodunda nasıl derleyebilirim?

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 edinmek için belgelerimizi inceleyin.

S: Lambda, işlevimi çalıştırmak için hangi JVM ortamını kullanıyor?

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

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

S: AWS Lambda ile paket kullanabilir miyim?

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

S: AWS Lambda işlevimden Node.js ile yazılmış farklı programlar da çalıştırabilir miyim?

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.

S: AWS Lambda işlevleriyle Node.js ile yazılmış yerel modülleri kullanabilir miyim?

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.

S: AWS Lambda’da Node.js ile yazılmış ikili dosyaları çalıştırabilir miyim?

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 ikili dosyaları komut satırında sarmalamanızı sağlayan NPM paketlerinden de faydalanabilirsiniz. Buradan daha fazla bilgi edinebilirsiniz.

S: Node.js ile yazılmış AWS Lambda işlevi kodunu nasıl dağıtabilirim?

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 edinmek için belgelerimizi inceleyin.

Python ile yazılan AWS Lambda işlevleri

S: AWS Lambda ile Python paketlerini kullanabilir miyim?

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

C# ile yazılan AWS Lambda işlevleri

S: C# ile yazılmış bir AWS Lambda işlevini nasıl paketleyebilir ve dağıtabilirim?

C# Lambda işlevini oluşturmak için Visual Studio IDE ortamından Çözüm Gezgini’nde "Şuraya yayımla: AWS Lambda"yı seçebilirsiniz. Alternatif olarak [# Lambda CLI araçları düzeltme eki] yüklü dotnet CLI’dan "dotnet lambda publish" komutunu çalıştırarak C# kaynak kodunuzu, tüm NuGet bağımlılıklarını ve kendi yayımladığınız DLL derlemeleri içeren bir ZIP dosyası 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

S: PowerShell ile yazılmış AWS Lambda işlevi kodunu nasıl dağıtabilirim?

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.

S: PowerShell ile yazılmış AWS Lambda işlevi kodunu nasıl dağıtabilirim?  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.
S: PowerShell ile yazılmış AWS Lambda işlevi kodunu nasıl dağıtabilirim?  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

S: Go ile yazılmış bir AWS Lambda işlevini nasıl paketleyebilir ve dağıtabilirim? 

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

S: Ruby ile yazılmış AWS Lambda işlevi kodunu nasıl dağıtabilirim? 

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

S: AWS Lambda hangi Amazon Linux, Node.js, Python, JDK, .NET Core, SDK ve ek kitaplık sürümlerini destekler?

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

S: Amazon Linux veya başka bir dil çalışma zamanı sürümünü değiştirebilir miyim?

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.

S: AWS Lambda API’sine yapılan denetim çağrılarını nasıl kaydedebilirim?

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.

S: Birden fazla Lambda işlevi için çağrıları nasıl koordine edebilirim?

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.

S: AWS Lambda, Advanced Vector Extensions 2 (AVX2) talimat setini destekler mi?

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.

AWS Lambda fiyatlandırması hakkında daha fazla bilgi edinin

Fiyatlandırma sayfasını ziyaret edin
Başlamaya hazır mısınız?
Kaydolun
Başka sorunuz mu var?
Bize ulaşın