{"id":30922,"date":"2025-10-03T13:02:55","date_gmt":"2025-10-03T10:02:55","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/"},"modified":"2025-10-03T13:02:55","modified_gmt":"2025-10-03T10:02:55","slug":"awsde-lambda-fonksiyonu-olusturma-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/","title":{"rendered":"AWS&#8217;de Lambda Fonksiyonu Olu\u015fturma Rehberi"},"content":{"rendered":"<p>AWS Lambda, bulut tabanl\u0131 sunucusuz bir i\u015flem hizmeti olarak, geli\u015ftiricilere kodlar\u0131n\u0131 sunucu altyap\u0131s\u0131 y\u00f6netme zahmetine girmeden \u00e7al\u0131\u015ft\u0131rma imkan\u0131 sunar. Bu kapsaml\u0131 rehberde, AWS Lambda fonksiyonlar\u0131n\u0131 ba\u015ftan sona nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen dijital d\u00fcnyas\u0131nda, uygulama geli\u015ftirme s\u00fcre\u00e7leri de s\u00fcrekli evrim ge\u00e7irmektedir. Geleneksel sunucu y\u00f6netimi, \u00f6l\u00e7eklendirme, bak\u0131m ve maliyet gibi zorluklar\u0131 beraberinde getirirken, &#8220;sunucusuz&#8221; (serverless) mimari bu sorunlara yenilik\u00e7i \u00e7\u00f6z\u00fcmler sunuyor. AWS Lambda, bu sunucusuz devrimin \u00f6nc\u00fclerinden biri olarak, geli\u015ftiricilerin sadece koda odaklanmas\u0131na ve altyap\u0131 karma\u015fas\u0131ndan kurtulmas\u0131na olanak tan\u0131r. Peki, AWS Lambda tam olarak nedir ve neden bu kadar pop\u00fcler hale gelmi\u015ftir? Gelin, bu g\u00fc\u00e7l\u00fc hizmetin derinliklerine inelim ve kendi Lambda fonksiyonunuzu nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m ke\u015ffedelim.<\/p>\n<p>Herhangi bir modern bulut mimarisi tart\u0131\u015fmas\u0131nda &#8220;sunucusuz&#8221; terimini duymaman\u0131z neredeyse imkans\u0131zd\u0131r. Sunucusuz mimari, geli\u015ftiricilerin sunucu ve altyap\u0131 y\u00f6netimiyle u\u011fra\u015fmadan, do\u011frudan uygulama kodunu yaz\u0131p \u00e7al\u0131\u015ft\u0131rmas\u0131na izin veren bir bulut y\u00fcr\u00fctme modelidir. Bu modelde, bulut sa\u011flay\u0131c\u0131s\u0131 (bu durumda AWS) sunucular\u0131n provizyonunu, \u00f6l\u00e7eklendirilmesini ve bak\u0131m\u0131n\u0131 tamamen \u00fcstlenir. \u0130\u015fte tam da bu noktada AWS Lambda devreye giriyor.<\/p>\n<p>AWS Lambda, bu sunucusuz ekosistemin temel ta\u015f\u0131d\u0131r. Olay odakl\u0131 (event-driven) bir i\u015flem hizmetidir; yani bir olay (\u00f6rne\u011fin, bir API iste\u011fi, bir veritaban\u0131 de\u011fi\u015fikli\u011fi, bir dosya y\u00fcklemesi) meydana geldi\u011finde kodunuzu \u00e7al\u0131\u015ft\u0131r\u0131r. Kodunuz sadece ihtiya\u00e7 duyuldu\u011funda \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131\u011f\u0131 i\u00e7in, kullanmad\u0131\u011f\u0131n\u0131z s\u00fcre boyunca hi\u00e7bir maliyet \u00f6demezsiniz. Bu &#8220;kulland\u0131\u011f\u0131n kadar \u00f6de&#8221; modeli, geleneksel sunucu maliyetlerine k\u0131yasla \u00e7ok daha verimli ve ekonomiktir. \u00d6zellikle d\u00fc\u015f\u00fck ve de\u011fi\u015fken trafikli uygulamalar i\u00e7in bu, oyunun kurallar\u0131n\u0131 de\u011fi\u015ftiren bir \u00f6zelliktir. Ayr\u0131ca, AWS Lambda, uygulaman\u0131z\u0131n trafi\u011fi ne olursa olsun, otomatik olarak \u00f6l\u00e7eklenir. Milyonlarca iste\u011fi sorunsuz bir \u015fekilde i\u015fleyebilir ve sizin manuel olarak sunucu eklemenize veya \u00e7\u0131karman\u0131za gerek kalmaz.<\/p>\n<p>Bu hizmetin sundu\u011fu avantajlar sadece maliyet ve \u00f6l\u00e7eklenebilirlikle s\u0131n\u0131rl\u0131 de\u011fildir. Geli\u015ftirme s\u00fcre\u00e7lerini de \u00f6nemli \u00f6l\u00e7\u00fcde h\u0131zland\u0131r\u0131r. Altyap\u0131 kurulumu ve y\u00f6netimi i\u00e7in harcanan zaman, do\u011frudan i\u015f mant\u0131\u011f\u0131 geli\u015ftirmeye ayr\u0131labilir. Bu, ekiplerin daha h\u0131zl\u0131 yineleme yapmas\u0131na ve \u00fcr\u00fcnleri daha \u00e7abuk pazara sunmas\u0131na olanak tan\u0131r. \u00d6rne\u011fin, bir web uygulamas\u0131n\u0131n arka ucunda kullan\u0131c\u0131 kimlik do\u011frulama, veri i\u015fleme veya bildirim g\u00f6nderme gibi i\u015flevleri h\u0131zl\u0131ca devreye almak istedi\u011finizde Lambda ideal bir \u00e7\u00f6z\u00fcm sunar. Kodunuzu yazars\u0131n\u0131z, Lambda&#8217;ya y\u00fcklersiniz, bir tetikleyici belirlersiniz ve hepsi bu kadar. Geri kalan her \u015feyle AWS ilgilenir.<\/p>\n<p>Bir vaka analizi olarak, bir foto\u011fraf payla\u015f\u0131m uygulamas\u0131n\u0131 d\u00fc\u015f\u00fcnelim. Kullan\u0131c\u0131lar foto\u011fraf y\u00fckledi\u011finde, bu foto\u011fraflar\u0131n farkl\u0131 boyutlarda (k\u00fc\u00e7\u00fck resim, orta boy vb.) yeniden boyutland\u0131r\u0131lmas\u0131 ve bir CDN&#8217;e (\u0130\u00e7erik Da\u011f\u0131t\u0131m A\u011f\u0131) g\u00f6nderilmesi gerekebilir. Geleneksel bir sunucu mimarisinde, sunucunun bu y\u00fck\u00fc kald\u0131rabilmesi i\u00e7in s\u00fcrekli \u00e7al\u0131\u015f\u0131r durumda olmas\u0131 ve pik y\u00fckleri y\u00f6netebilmesi i\u00e7in yeterli kaynaklara sahip olmas\u0131 gerekir. AWS Lambda ile, kullan\u0131c\u0131 bir foto\u011fraf\u0131 Amazon S3&#8217;e y\u00fckledi\u011finde bir S3 olay\u0131 tetiklenir, bu olay Lambda fonksiyonunuzu \u00e7al\u0131\u015ft\u0131r\u0131r. Fonksiyon, foto\u011fraf\u0131 yeniden boyutland\u0131r\u0131r ve sonu\u00e7lar\u0131 tekrar S3&#8217;e kaydeder. T\u00fcm bunlar, sadece fonksiyonun \u00e7al\u0131\u015ft\u0131\u011f\u0131 k\u0131sa s\u00fcre boyunca maliyet yarat\u0131r ve otomatik olarak \u00f6l\u00e7eklenir. Bu senaryo, sunucusuz mimarinin ne kadar verimli ve esnek olabilece\u011finin m\u00fckemmel bir \u00f6rne\u011fidir.<\/p>\n<p class=\"expert-tip\">Uzman \u0130pucu: Lambda&#8217;n\u0131n otomatik \u00f6l\u00e7eklenebilirlik \u00f6zelli\u011fi, \u00f6zellikle beklenmedik trafik art\u0131\u015flar\u0131nda uygulaman\u0131z\u0131n \u00e7\u00f6kmesini engellerken, sadece kullan\u0131lan kaynaklar i\u00e7in \u00f6deme yapman\u0131z\u0131 sa\u011flar. Bu, ba\u015flang\u0131\u00e7 seviyesindeki projelerden b\u00fcy\u00fck \u00f6l\u00e7ekli kurumsal uygulamalara kadar her t\u00fcrden geli\u015ftirme i\u00e7in cazip bir se\u00e7enek sunar.<\/p>\n<h2 id=\"aws-lambdanin-temel-bilesenleri-ve-calisma-mantigi\">AWS Lambda&#8217;n\u0131n Temel Bile\u015fenleri ve \u00c7al\u0131\u015fma Mant\u0131\u011f\u0131<\/h2>\n<p>AWS Lambda&#8217;n\u0131n g\u00fcc\u00fcn\u00fc tam olarak anlamak i\u00e7in, onun temel yap\u0131 ta\u015flar\u0131n\u0131 ve nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 kavramak \u00f6nemlidir. Lambda, basit bir &#8220;kodumu \u00e7al\u0131\u015ft\u0131r&#8221; servisi olmaktan \u00f6te, bir dizi bile\u015fenin uyumlu bir \u015fekilde \u00e7al\u0131\u015fmas\u0131yla ortaya \u00e7\u0131kan karma\u015f\u0131k bir ekosistemdir. Bu bile\u015fenler, fonksiyonunuzun g\u00fcvenli, verimli ve do\u011fru bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>\u00d6ncelikle, <strong>Fonksiyonlar (Functions)<\/strong> Lambda&#8217;n\u0131n kalbidir. Bir Lambda fonksiyonu, belirli bir g\u00f6revi yerine getiren, genellikle k\u00fc\u00e7\u00fck ve tek bir amac\u0131 olan bir kod blo\u011fudur. Bu kod, Node.js, Python, Java, C#, Go, Ruby veya hatta \u00f6zel bir \u00e7al\u0131\u015fma zaman\u0131 (custom runtime) kullanarak yaz\u0131labilir. Her fonksiyonun benzersiz bir ARN&#8217;si (Amazon Kaynak Ad\u0131) vard\u0131r ve AWS ekosisteminde ayr\u0131 bir varl\u0131k olarak y\u00f6netilir. Fonksiyonunuzu olu\u015ftururken, hangi \u00e7al\u0131\u015fma zaman\u0131n\u0131 (runtime) kullanaca\u011f\u0131n\u0131z\u0131 belirtmeniz gerekir. Bu runtime, kodunuzun \u00e7al\u0131\u015ft\u0131r\u0131laca\u011f\u0131 programlama diline \u00f6zg\u00fc ortam\u0131 sa\u011flar ve Lambda&#8217;n\u0131n kodunuzu anlamas\u0131na ve y\u00fcr\u00fctmesine yard\u0131mc\u0131 olur.<\/p>\n<p><strong>Olay Kaynaklar\u0131 (Event Sources) veya Tetikleyiciler (Triggers)<\/strong>, Lambda fonksiyonunuzu neyin ba\u015flataca\u011f\u0131n\u0131 tan\u0131mlar. Lambda fonksiyonlar\u0131 pasif varl\u0131klard\u0131r; yani kendili\u011finden \u00e7al\u0131\u015fmazlar. Bir olay taraf\u0131ndan tetiklenmeleri gerekir. Bu olaylar \u00e7ok \u00e7e\u015fitli olabilir: bir Amazon S3 kovas\u0131na dosya y\u00fcklenmesi, bir HTTP iste\u011fi (API Gateway arac\u0131l\u0131\u011f\u0131yla), bir veritaban\u0131 kayd\u0131n\u0131n de\u011fi\u015fmesi (DynamoDB Streams), bir mesaj kuyru\u011funa yeni bir mesaj\u0131n gelmesi (SQS), bir zamanlanm\u0131\u015f g\u00f6rev (CloudWatch Events\/EventBridge) veya hatta di\u011fer AWS hizmetlerinden gelen bildirimler (SNS). Bir fonksiyonu bir tetikleyiciye ba\u011flad\u0131\u011f\u0131n\u0131zda, Lambda o tetikleyici taraf\u0131ndan olu\u015fturulan olaylar\u0131 otomatik olarak dinler ve her olay geldi\u011finde fonksiyonunuzu \u00e7a\u011f\u0131r\u0131r. Bu olay odakl\u0131 mimari, mikroservis ve sunucusuz uygulamalar\u0131n temelini olu\u015fturur.<\/p>\n<p><strong>IAM Rolleri ve \u0130zinler (IAM Roles and Permissions)<\/strong>, Lambda fonksiyonlar\u0131n\u0131n AWS kaynaklar\u0131na g\u00fcvenli bir \u015fekilde eri\u015fmesini sa\u011flayan kritik bir g\u00fcvenlik mekanizmas\u0131d\u0131r. Her Lambda fonksiyonu, bir IAM (Identity and Access Management) rol\u00fcyle ili\u015fkilendirilir. Bu rol, fonksiyona S3&#8217;e yazma, DynamoDB&#8217;den okuma, CloudWatch&#8217;a log yazma gibi belirli eylemleri ger\u00e7ekle\u015ftirme izni verir. En iyi uygulama, her fonksiyona yaln\u0131zca ihtiya\u00e7 duydu\u011fu minimum izinleri veren en az ayr\u0131cal\u0131k (least privilege) ilkesini uygulamakt\u0131r. Bu, potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 azalt\u0131r ve uygulaman\u0131z\u0131n genel g\u00fcvenli\u011fini art\u0131r\u0131r.<\/p>\n<p>Fonksiyonunuzun performans\u0131 ve davran\u0131\u015f\u0131, \u00e7e\u015fitli <strong>Yap\u0131land\u0131rma Parametreleri<\/strong> ile belirlenir. Bu parametreler aras\u0131nda \u015funlar bulunur:<\/p>\n<ul>\n<li><strong>Bellek (Memory):<\/strong> Fonksiyona atanan bellek miktar\u0131 (128 MB&#8217;tan 10.240 MB&#8217;a kadar). Bellek miktar\u0131 ayn\u0131 zamanda CPU g\u00fcc\u00fcn\u00fc de orant\u0131l\u0131 olarak art\u0131r\u0131r. Daha fazla bellek, daha h\u0131zl\u0131 i\u015flem anlam\u0131na gelebilir.<\/li>\n<li><strong>Zaman A\u015f\u0131m\u0131 (Timeout):<\/strong> Fonksiyonun \u00e7al\u0131\u015fmas\u0131na izin verilen maksimum s\u00fcre (1 saniyeden 15 dakikaya kadar). Fonksiyon bu s\u00fcreyi a\u015farsa, Lambda onu sonland\u0131r\u0131r.<\/li>\n<li><strong>Ortam De\u011fi\u015fkenleri (Environment Variables):<\/strong> Fonksiyon kodunuzun d\u0131\u015far\u0131dan yap\u0131land\u0131r\u0131lmas\u0131na olanak tan\u0131yan anahtar-de\u011fer \u00e7iftleri. Veritaban\u0131 ba\u011flant\u0131 dizeleri, API anahtarlar\u0131 gibi hassas olmayan bilgileri burada saklayabilirsiniz.<\/li>\n<li><strong>VPC Ba\u011flant\u0131s\u0131 (VPC Connectivity):<\/strong> Fonksiyonunuzun \u00f6zel bir sanal a\u011f i\u00e7inde (VPC) \u00e7al\u0131\u015fmas\u0131 gerekiyorsa (\u00f6rne\u011fin, \u00f6zel bir RDS veritaban\u0131na eri\u015fmek i\u00e7in), bu ayar\u0131 yap\u0131land\u0131rman\u0131z gerekir.<\/li>\n<\/ul>\n<p>Son olarak, Lambda&#8217;n\u0131n \u00e7al\u0131\u015fma modelinde iki \u00f6nemli kavram vard\u0131r: <strong>Cold Start<\/strong> ve <strong>Warm Start<\/strong>. Bir Lambda fonksiyonu uzun s\u00fcre kullan\u0131lmad\u0131\u011f\u0131nda, AWS onunla ili\u015fkili kapsay\u0131c\u0131y\u0131 (container) kapat\u0131r. Bir sonraki istek geldi\u011finde, Lambda yeni bir kapsay\u0131c\u0131 ba\u015flatmal\u0131, kodu y\u00fcklemeli ve \u00e7al\u0131\u015fma zaman\u0131n\u0131 ba\u015flatmal\u0131d\u0131r. Bu s\u00fcre\u00e7 &#8220;cold start&#8221; olarak adland\u0131r\u0131l\u0131r ve birka\u00e7 y\u00fcz milisaniyeden birka\u00e7 saniyeye kadar s\u00fcrebilir. Bu, \u00f6zellikle gecikmeye duyarl\u0131 uygulamalar i\u00e7in performans\u0131 etkileyebilir. \u00d6te yandan, bir fonksiyon k\u0131sa bir s\u00fcre \u00f6nce \u00e7al\u0131\u015ft\u0131ysa, AWS mevcut kapsay\u0131c\u0131y\u0131 yeniden kullanabilir. Bu &#8220;warm start&#8221; daha h\u0131zl\u0131d\u0131r, \u00e7\u00fcnk\u00fc ortam zaten kuruludur. Cold start&#8217;\u0131 azaltmak i\u00e7in \u00e7e\u015fitli stratejiler (\u00f6rne\u011fin, provisioned concurrency) mevcuttur ve bu, \u00f6zellikle y\u00fcksek performans beklenen uygulamalarda g\u00f6z \u00f6n\u00fcnde bulundurulmas\u0131 gereken bir konudur.<\/p>\n<p>T\u00fcm bu bile\u015fenler bir araya geldi\u011finde, AWS Lambda, geli\u015ftiricilere sadece i\u015f mant\u0131\u011f\u0131na odaklanma ve geri kalan altyap\u0131 endi\u015felerini AWS&#8217;ye b\u0131rakma imkan\u0131 sunan g\u00fc\u00e7l\u00fc ve esnek bir platform haline gelir.<\/p>\n<h2 id=\"adim-adim-aws-lambda-fonksiyonu-olusturma-konsol-uzerinden-basit-bir-ornek\">Ad\u0131m Ad\u0131m AWS Lambda Fonksiyonu Olu\u015fturma: Konsol \u00dczerinden Basit Bir \u00d6rnek<\/h2>\n<p>Teorik bilgileri edindi\u011fimize g\u00f6re, \u015fimdi i\u015fin prati\u011fe d\u00f6k\u00fclme zaman\u0131. AWS konsolu \u00fczerinden basit bir &#8220;Merhaba D\u00fcnya&#8221; Lambda fonksiyonu olu\u015fturarak, bu s\u00fcrecin ne kadar kolay oldu\u011funu g\u00f6rece\u011fiz. Bu \u00f6rnek, Lambda fonksiyonunun temel ad\u0131mlar\u0131n\u0131 anlaman\u0131za yard\u0131mc\u0131 olacak ve ileri d\u00fczey uygulamalar i\u00e7in sa\u011flam bir zemin olu\u015fturacakt\u0131r.<\/p>\n<h3 id=\"aws-konsolunda-oturum-acma-ve-lambda-hizmetine-erisim\">AWS Konsolunda Oturum A\u00e7ma ve Lambda Hizmetine Eri\u015fim<\/h3>\n<p>\u00d6ncelikle, bir AWS hesab\u0131n\u0131z olmas\u0131 ve AWS konsolunda oturum a\u00e7man\u0131z gerekmektedir. E\u011fer bir hesab\u0131n\u0131z yoksa, <a href=\"https:\/\/aws.amazon.com\/\" target=\"_blank\">aws.amazon.com<\/a> adresinden \u00fccretsiz bir hesap olu\u015fturabilirsiniz (genellikle bir y\u0131l boyunca \u00fccretsiz kullan\u0131m katman\u0131 sunar). Oturum a\u00e7t\u0131ktan sonra, arama \u00e7ubu\u011funa &#8220;Lambda&#8221; yazarak veya &#8220;Hizmetler&#8221; men\u00fcs\u00fc alt\u0131ndan &#8220;\u0130\u015flem&#8221; (Compute) b\u00f6l\u00fcm\u00fcnden &#8220;Lambda&#8221; hizmetine ula\u015fabilirsiniz. Lambda ana ekran\u0131na geldi\u011finizde, daha \u00f6nce olu\u015fturulmu\u015f fonksiyonlar\u0131n\u0131z varsa onlar\u0131 liste halinde g\u00f6receksiniz. Biz yeni bir fonksiyon olu\u015fturaca\u011f\u0131m\u0131z i\u00e7in &#8220;Fonksiyon Olu\u015ftur&#8221; (Create function) d\u00fc\u011fmesine t\u0131klayaca\u011f\u0131z.<\/p>\n<h3 id=\"yeni-bir-fonksiyon-olusturma-sihirbazini-kullanma\">Yeni Bir Fonksiyon Olu\u015fturma Sihirbaz\u0131n\u0131 Kullanma<\/h3>\n<p>&#8220;Fonksiyon Olu\u015ftur&#8221; ekran\u0131nda, d\u00f6rt farkl\u0131 se\u00e7enek g\u00f6receksiniz. En yayg\u0131n ve ba\u015flang\u0131\u00e7 i\u00e7in en uygun olan\u0131 &#8220;S\u0131f\u0131rdan Olu\u015ftur&#8221; (Author from scratch) se\u00e7ene\u011fidir. Bu se\u00e7ene\u011fi i\u015faretledikten sonra a\u015fa\u011f\u0131daki bilgileri girmemiz gerekecek:<\/p>\n<ol>\n<li><strong>Fonksiyon Ad\u0131 (Function name):<\/strong> Fonksiyonunuza benzersiz bir isim verin. \u00d6rne\u011fin, &#8220;MerhabaDunyaLambda&#8221;. Bu isim, Lambda fonksiyonunuzu di\u011ferlerinden ay\u0131racak ve CloudWatch g\u00fcnl\u00fcklerinde, metriklerde g\u00f6r\u00fcnecektir.<\/li>\n<li><strong>\u00c7al\u0131\u015fma Zaman\u0131 (Runtime):<\/strong> Kodunuzu hangi programlama dilinde yazd\u0131\u011f\u0131n\u0131z\u0131 belirtin. Bu \u00f6rnek i\u00e7in &#8220;Python 3.9&#8221; veya &#8220;Node.js 16.x&#8221; gibi pop\u00fcler bir se\u00e7ene\u011fi tercih edebilirsiniz. Ben Python \u00f6rne\u011fi \u00fczerinden devam edece\u011fim.<\/li>\n<li><strong>Mimari (Architecture):<\/strong> Varsay\u0131lan olarak &#8220;x86_64&#8221; se\u00e7ili gelir ve \u00e7o\u011fu kullan\u0131m durumu i\u00e7in yeterlidir. \u0130stedi\u011finiz takdirde ARM tabanl\u0131 &#8220;arm64&#8221; mimarisini de se\u00e7ebilirsiniz (genellikle daha iyi performans ve d\u00fc\u015f\u00fck maliyet sunar).<\/li>\n<li><strong>Y\u00fcr\u00fctme Rol\u00fc (Execution Role):<\/strong> Bu, Lambda fonksiyonunuzun AWS&#8217;deki di\u011fer hizmetlere eri\u015fmek i\u00e7in kullanaca\u011f\u0131 IAM rol\u00fcd\u00fcr.\n<ul>\n<li><strong>Yeni rol olu\u015ftur (Create a new role with basic Lambda permissions):<\/strong> E\u011fer ilk kez bir Lambda olu\u015fturuyorsan\u0131z veya fonksiyona \u00f6zel bir rol istiyorsan\u0131z bu se\u00e7ene\u011fi se\u00e7in. Lambda otomatik olarak temel izinlere sahip (CloudWatch g\u00fcnl\u00fcklerine yazma gibi) bir rol olu\u015fturur.<\/li>\n<li><strong>Mevcut rol\u00fc kullan (Use an existing role):<\/strong> Daha \u00f6nce bir Lambda rol\u00fc olu\u015fturduysan\u0131z, bu se\u00e7ene\u011fi se\u00e7ip listeden mevcut rol\u00fc se\u00e7ebilirsiniz.<\/li>\n<li><strong>\u0130zinleri \u00f6zel olarak yap\u0131land\u0131r (Create a new role from AWS policy templates):<\/strong> E\u011fer daha spesifik izinler gerekiyorsa, bu se\u00e7ene\u011fi kullanabilirsiniz. Ancak ba\u015flang\u0131\u00e7 i\u00e7in &#8220;Yeni rol olu\u015ftur&#8221; en kolay\u0131d\u0131r.<\/li>\n<\/ul>\n<p>Biz &#8220;Yeni rol olu\u015ftur&#8221; se\u00e7ene\u011fini se\u00e7elim ve varsay\u0131lan ayarlar\u0131yla devam edelim.<\/p>\n<\/ol>\n<p>T\u00fcm bu bilgileri girdikten sonra &#8220;Fonksiyon Olu\u015ftur&#8221; (Create function) d\u00fc\u011fmesine t\u0131klay\u0131n. Birka\u00e7 saniye i\u00e7inde Lambda fonksiyonunuz haz\u0131r olacak ve sizi fonksiyonun yap\u0131land\u0131rma sayfas\u0131na y\u00f6nlendirecektir.<\/p>\n<h3 id=\"fonksiyon-kodunu-yazma-ve-test-etme\">Fonksiyon Kodunu Yazma ve Test Etme<\/h3>\n<p>Fonksiyonunuzun yap\u0131land\u0131rma sayfas\u0131nda, &#8220;Kod Kayna\u011f\u0131&#8221; (Code source) b\u00f6l\u00fcm\u00fcn\u00fc g\u00f6receksiniz. Burada, Lambda&#8217;n\u0131n sa\u011flad\u0131\u011f\u0131 online kod d\u00fczenleyiciyi (code editor) kullanarak fonksiyon kodunuzu yazabilir veya mevcut bir ZIP dosyas\u0131n\u0131 y\u00fckleyebilirsiniz. Varsay\u0131lan olarak, se\u00e7ti\u011finiz \u00e7al\u0131\u015fma zaman\u0131na uygun basit bir &#8220;Merhaba D\u00fcnya&#8221; \u015fablonu y\u00fckl\u00fc gelecektir. Python i\u00e7in bu \u015f\u00f6yle g\u00f6r\u00fcnecektir:<\/p>\n<pre><code class=\"language-python\">\nimport json\n\ndef lambda_handler(event, context):\n    # Log the received event for debugging purposes\n    print(\"Received event: \" + json.dumps(event, indent=2))\n\n    # You can process the 'event' object which contains data from the trigger\n    # For example, if triggered by API Gateway, 'event' would contain HTTP request details.\n    \n    message = \"Merhaba, AWS Lambda! Fonksiyonunuz ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131.\"\n    \n    # The return value must be JSON serializable\n    return {\n        'statusCode': 200,\n        'headers': {\n            'Content-Type': 'application\/json',\n        },\n        'body': json.dumps({'message': message})\n    }\n<\/pre>\n<p><\/code><\/p>\n<p>Bu kodda dikkat etmeniz gerekenler:<\/p>\n<ul>\n<li><code>lambda_handler(event, context)<\/code>: Bu, Lambda taraf\u0131ndan \u00e7a\u011fr\u0131lan ana fonksiyondur.\n<ul>\n<li><code>event<\/code>: Fonksiyonu tetikleyen olaydan gelen verileri i\u00e7eren bir Python s\u00f6zl\u00fc\u011f\u00fcd\u00fcr (dictionary).<\/li>\n<li><code>context<\/code>: \u00c7al\u0131\u015fma zaman\u0131 bilgileri, \u00e7a\u011fr\u0131 kimli\u011fi ve di\u011fer faydal\u0131 meta verileri sa\u011flayan bir nesnedir.<\/li>\n<\/ul>\n<\/li>\n<li><code>statusCode: 200<\/code>: Ba\u015far\u0131l\u0131 bir HTTP yan\u0131t\u0131n\u0131 temsil eder.<\/li>\n<li><code>body: json.dumps(...)<\/code>: Yan\u0131t g\u00f6vdesini JSON format\u0131nda d\u00f6nd\u00fcr\u00fcr.<\/li>\n<\/ul>\n<p>Kodu de\u011fi\u015ftirdi\u011finizde, kod d\u00fczenleyicisinin \u00fczerindeki \"Da\u011f\u0131t\" (Deploy) d\u00fc\u011fmesine t\u0131klayarak de\u011fi\u015fiklikleri kaydedin. \u015eimdi fonksiyonumuzu test etmeye haz\u0131r\u0131z!<\/p>\n<p>\"Test\" sekmesine t\u0131klay\u0131n. Burada, fonksiyonunuzu tetikleyecek bir test olay\u0131 olu\u015fturman\u0131z gerekecek. \"Yeni etkinlik olu\u015ftur\" (Create new event) se\u00e7ene\u011fini se\u00e7in. Bir \"Etkinlik ad\u0131\" (Event name) verin (\u00f6rne\u011fin \"MyTestEvent\"). \u015eablon olarak \"hello-world\" veya \"empty\" se\u00e7ebilirsiniz. JSON olay verisi k\u0131sm\u0131na a\u015fa\u011f\u0131daki gibi bir JSON objesi girebilirsiniz:<\/p>\n<pre><code class=\"language-json\">\n{\n  \"key1\": \"de\u011fer1\",\n  \"key2\": \"de\u011fer2\",\n  \"key3\": \"de\u011fer3\"\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu test verileri <code>event<\/code> parametresi olarak fonksiyonunuza iletilecektir. \"Kaydet\" (Save) d\u00fc\u011fmesine t\u0131klay\u0131n. \u015eimdi, olu\u015fturdu\u011funuz test etkinli\u011fini se\u00e7ip \"Test\" d\u00fc\u011fmesine t\u0131klay\u0131n. Fonksiyonunuz \u00e7al\u0131\u015facak ve sonu\u00e7lar ekran\u0131n \u00fcst k\u0131sm\u0131nda g\u00f6r\u00fcnt\u00fclenecektir. Ba\u015far\u0131l\u0131 bir \u00e7al\u0131\u015ft\u0131rman\u0131n ard\u0131ndan <code>statusCode: 200<\/code> ve <code>body<\/code> i\u00e7inde \"Merhaba, AWS Lambda!\" mesaj\u0131n\u0131 g\u00f6rmelisiniz. Ayr\u0131ca, \"G\u00fcnl\u00fck \u00e7\u0131kt\u0131s\u0131\" (Log output) b\u00f6l\u00fcm\u00fcnde <code>print<\/code> ifadesiyle yazd\u0131rd\u0131\u011f\u0131m\u0131z \"Received event: ...\" mesaj\u0131n\u0131 da g\u00f6receksiniz. Bu g\u00fcnl\u00fckler, CloudWatch Logs hizmetinde saklan\u0131r ve fonksiyonunuzun sorun gidermesinde kritik \u00f6neme sahiptir.<\/p>\n<p>Bu ad\u0131mlarla, ilk AWS Lambda fonksiyonunuzu ba\u015far\u0131yla olu\u015fturmu\u015f ve test etmi\u015f oldunuz. Art\u0131k bu temel \u00fczerine daha karma\u015f\u0131k ve ger\u00e7ek d\u00fcnya senaryolar\u0131na y\u00f6nelik uygulamalar geli\u015ftirmeye ba\u015flayabilirsiniz.<\/p>\n<h2 id=\"tetikleyicilerle-lambda-fonksiyonunuzu-hayata-gecirme-gercek-dunya-uygulamalari\">Tetikleyicilerle Lambda Fonksiyonunuzu Hayata Ge\u00e7irme: Ger\u00e7ek D\u00fcnya Uygulamalar\u0131<\/h2>\n<p>Bir Lambda fonksiyonu tek ba\u015f\u0131na bir kod blo\u011fundan ibarettir. Ancak onu g\u00fc\u00e7l\u00fc ve kullan\u0131\u015fl\u0131 k\u0131lan, farkl\u0131 AWS hizmetlerinden gelen olaylarla tetiklenebilmesidir. Bu b\u00f6l\u00fcmde, Lambda fonksiyonlar\u0131n\u0131z\u0131 ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l kullanabilece\u011finizi g\u00f6steren pop\u00fcler tetikleyici \u00f6rneklerini inceleyece\u011fiz. Her bir tetikleyici, farkl\u0131 bir ihtiyaca y\u00f6nelik \u00e7\u00f6z\u00fcm sunar ve sunucusuz mimarinin esnekli\u011fini g\u00f6zler \u00f6n\u00fcne serer.<\/p>\n<p>Lambda fonksiyonlar\u0131n\u0131z\u0131 tetiklemek i\u00e7in bir\u00e7ok AWS hizmetini kullanabilirsiniz. En yayg\u0131n tetikleyiciler aras\u0131nda Amazon API Gateway (web istekleri i\u00e7in), Amazon S3 (dosya olaylar\u0131 i\u00e7in) ve Amazon EventBridge (zamanlanm\u0131\u015f olaylar veya uygulama olaylar\u0131 i\u00e7in) bulunur. Bu tetikleyiciler, Lambda'n\u0131n olay odakl\u0131 do\u011fas\u0131n\u0131 en iyi \u015fekilde sergiler ve uygulaman\u0131z\u0131n farkl\u0131 bile\u015fenleri aras\u0131nda sorunsuz entegrasyon sa\u011flar.<\/p>\n<p>A\u015fa\u011f\u0131daki tablo, s\u0131k kullan\u0131lan Lambda tetikleyicilerini ve temel kullan\u0131m senaryolar\u0131n\u0131 \u00f6zetlemektedir:<\/p>\n<table>\n<thead>\n<tr>\n<th>Tetikleyici Servis<\/th>\n<th>Olay T\u00fcr\u00fc<\/th>\n<th>Tipik Kullan\u0131m Senaryosu<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Amazon API Gateway<\/td>\n<td>HTTP(S) \u0130stekleri<\/td>\n<td>RESTful API'ler, web kancalar\u0131 (webhooks), mobil arka u\u00e7lar<\/td>\n<\/tr>\n<tr>\n<td>Amazon S3<\/td>\n<td>Nesne Olu\u015fturma\/Silme<\/td>\n<td>Resim veya video i\u015fleme, veri d\u00f6n\u00fc\u015ft\u00fcrme, log analizi<\/td>\n<\/tr>\n<tr>\n<td>Amazon EventBridge (CloudWatch Events)<\/td>\n<td>Zamanlanm\u0131\u015f Olaylar (Cron)<\/td>\n<td>Periyodik raporlama, veritaban\u0131 temizli\u011fi, sistem sa\u011fl\u0131\u011f\u0131 kontrol\u00fc<\/td>\n<\/tr>\n<tr>\n<td>Amazon DynamoDB<\/td>\n<td>Veritaban\u0131 De\u011fi\u015fiklikleri (Streams)<\/td>\n<td>Ger\u00e7ek zamanl\u0131 veri analizi, veritaban\u0131 replikasyonu, bildirimler<\/td>\n<\/tr>\n<tr>\n<td>Amazon SQS (Simple Queue Service)<\/td>\n<td>Kuyruk Mesajlar\u0131<\/td>\n<td>Asenkron i\u015fleme, mikroservisler aras\u0131 ileti\u015fim, i\u015f y\u00fck\u00fc dengeleme<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"api-gateway-ile-web-servisi-olusturma\">API Gateway ile Web Servisi Olu\u015fturma<\/h3>\n<p>Belki de Lambda'n\u0131n en pop\u00fcler kullan\u0131m alanlar\u0131ndan biri, onu bir web servisi veya RESTful API'nin arka ucu olarak kullanmakt\u0131r. Amazon API Gateway, bu entegrasyonu sa\u011flaman\u0131n anahtar\u0131d\u0131r. API Gateway, gelen HTTP isteklerini yakalar ve bu istekleri yap\u0131land\u0131rd\u0131\u011f\u0131n\u0131z Lambda fonksiyonlar\u0131na y\u00f6nlendirir. Bu sayede, sunucusuz bir API olu\u015fturabilir ve web veya mobil uygulamalar\u0131n\u0131zdan kolayca eri\u015filebilir hale getirebilirsiniz.<\/p>\n<p>Bir Lambda fonksiyonunu API Gateway ile tetiklemek i\u00e7in \u015fu ad\u0131mlar\u0131 izleyebilirsiniz:<\/p>\n<ol>\n<li>Lambda konsolundaki fonksiyonunuzun yap\u0131land\u0131rma sayfas\u0131nda, \"Tetikleyici Ekle\" (Add trigger) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li>\n<li>Tetikleyici t\u00fcr\u00fc olarak \"API Gateway\"i se\u00e7in.<\/li>\n<li>Bir API olu\u015fturma se\u00e7ene\u011fi sunulacakt\u0131r. Genellikle \"REST API\" veya daha modern ve maliyet etkin olan \"HTTP API\" se\u00e7ebilirsiniz. Yeni bir API olu\u015fturuyorsan\u0131z, \"Yeni API Olu\u015ftur\" (Create an API) se\u00e7ene\u011fini i\u015faretleyin.<\/li>\n<li>\"G\u00fcvenlik\" (Security) ayar\u0131n\u0131 \"A\u00e7\u0131k\" (Open) veya bir kimlik do\u011frulama mekanizmas\u0131 (\u00f6rne\u011fin IAM, Cognito) ile yap\u0131land\u0131r\u0131n. Ba\u015flang\u0131\u00e7 i\u00e7in \"A\u00e7\u0131k\" se\u00e7ene\u011fi kolayl\u0131k sa\u011flar ancak \u00fcretim ortamlar\u0131nda g\u00fcvenlik her zaman \u00f6ncelikli olmal\u0131d\u0131r.<\/li>\n<li>\"Ekle\" (Add) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li>\n<\/ol>\n<p>Bu ad\u0131mlar\u0131n ard\u0131ndan, API Gateway size bir URL sa\u011flayacakt\u0131r (\u00f6rne\u011fin, <code>https:\/\/abcdefg.execute-api.us-east-1.amazonaws.com\/default\/MerhabaDunyaLambda<\/code>). Bu URL'ye bir HTTP GET iste\u011fi g\u00f6nderdi\u011finizde, Lambda fonksiyonunuz tetiklenecek ve fonksiyonunuzun d\u00f6nd\u00fcrd\u00fc\u011f\u00fc yan\u0131t\u0131 alacaks\u0131n\u0131z. API Gateway'in proxy entegrasyonu sayesinde, Lambda fonksiyonunuz HTTP istek ba\u015fl\u0131klar\u0131na, sorgu parametrelerine ve g\u00f6vdesine tam eri\u015fim sa\u011flar, bu da dinamik ve karma\u015f\u0131k API'ler olu\u015fturman\u0131za olanak tan\u0131r.<\/p>\n<h3 id=\"s3-olaylari-ile-otomatik-islem-baslatma\">S3 Olaylar\u0131 ile Otomatik \u0130\u015flem Ba\u015flatma<\/h3>\n<p>Amazon S3 (Simple Storage Service), buluttaki nesne depolama hizmetidir. S3, sadece verilerinizi depolamakla kalmaz, ayn\u0131 zamanda depolama olaylar\u0131na (\u00f6rne\u011fin, nesne olu\u015fturma, silme) tepki olarak Lambda fonksiyonlar\u0131n\u0131 tetikleyebilir. Bu \u00f6zellik, veri i\u015fleme, medya d\u00f6n\u00fc\u015ft\u00fcrme veya analiz i\u015f ak\u0131\u015flar\u0131n\u0131 otomatikle\u015ftirmek i\u00e7in son derece kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<p>\u00d6rnek senaryo: Bir kullan\u0131c\u0131 bir resim dosyas\u0131n\u0131 S3'e y\u00fckledi\u011finde, bu resmin otomatik olarak k\u00fc\u00e7\u00fck bir \u00f6nizleme (thumbnail) versiyonunun olu\u015fturulmas\u0131.<\/p>\n<ol>\n<li>Lambda konsolundaki fonksiyonunuzun yap\u0131land\u0131rma sayfas\u0131nda, \"Tetikleyici Ekle\" (Add trigger) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li>\n<li>Tetikleyici t\u00fcr\u00fc olarak \"S3\"\u00fc se\u00e7in.<\/li>\n<li>Resimlerin y\u00fcklenece\u011fi bir S3 kovas\u0131 (bucket) se\u00e7in. E\u011fer yoksa, \u00f6nce bir kova olu\u015fturman\u0131z gerekecektir.<\/li>\n<li>\"Olay t\u00fcr\u00fc\" (Event type) olarak \"T\u00fcm nesne olu\u015fturma olaylar\u0131\" (All objects create events) veya \"Put\" (Nesne ekleme) gibi belirli bir olay\u0131 se\u00e7in.<\/li>\n<li>Opsiyonel olarak, belirli \u00f6neklere (prefix) veya soneklere (suffix) sahip dosyalar\u0131 filtreleyebilirsiniz (\u00f6rne\u011fin, sadece <code>.jpg<\/code> uzant\u0131l\u0131 dosyalar i\u00e7in).<\/li>\n<li>\"Ekle\" (Add) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li>\n<\/ol>\n<p>Art\u0131k, se\u00e7ti\u011finiz S3 kovas\u0131na bir dosya y\u00fcklendi\u011finde, Lambda fonksiyonunuz otomatik olarak tetiklenecek ve y\u00fcklenen dosya hakk\u0131nda bilgileri (<code>event<\/code> nesnesi i\u00e7inde) alacakt\u0131r. Fonksiyonunuz bu bilgileri kullanarak S3'ten dosyay\u0131 okuyabilir, i\u015fleyebilir (\u00f6rne\u011fin, Python'da Pillow k\u00fct\u00fcphanesi ile yeniden boyutland\u0131rabilir) ve i\u015flenmi\u015f dosyay\u0131 ba\u015fka bir S3 kovas\u0131na kaydedebilir. Bu tamamen sunucusuz bir resim i\u015fleme boru hatt\u0131 olu\u015fturman\u0131n harika bir yoludur.<\/p>\n<h3 id=\"zamanlanmis-gorevler-icin-cloudwatch-events-eventbridge\">Zamanlanm\u0131\u015f G\u00f6revler i\u00e7in CloudWatch Events (EventBridge)<\/h3>\n<p>Bir\u00e7ok uygulamada, belirli aral\u0131klarla \u00e7al\u0131\u015fan zamanlanm\u0131\u015f g\u00f6revlere (cron jobs) ihtiya\u00e7 duyulur. \u00d6rne\u011fin, g\u00fcnl\u00fck raporlar olu\u015fturmak, veritaban\u0131 temizli\u011fi yapmak veya belirli bir zamanda bildirimler g\u00f6ndermek. AWS CloudWatch Events (\u015fimdiki ad\u0131yla Amazon EventBridge), bu t\u00fcr zamanlanm\u0131\u015f g\u00f6revleri sunucusuz bir \u015fekilde y\u00f6netmenizi sa\u011flar.<\/p>\n<p>Bir Lambda fonksiyonunu zamanlanm\u0131\u015f bir olayla tetiklemek i\u00e7in:<\/p>\n<ol>\n<li>Lambda konsolundaki fonksiyonunuzun yap\u0131land\u0131rma sayfas\u0131nda, \"Tetikleyici Ekle\" (Add trigger) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li>\n<li>Tetikleyici t\u00fcr\u00fc olarak \"EventBridge (CloudWatch Events)\"i se\u00e7in.<\/li>\n<li>\"Yeni kural olu\u015ftur\" (Create a new rule) se\u00e7ene\u011fini se\u00e7in.<\/li>\n<li>Kurala bir isim ve a\u00e7\u0131klama verin.<\/li>\n<li>\"Kural t\u00fcr\u00fc\" (Rule type) olarak \"Planla\" (Schedule) se\u00e7ene\u011fini i\u015faretleyin.<\/li>\n<li>Bir \"Schedule expression\" girin. Bu, bir cron ifadesi veya sabit bir h\u0131z (rate) ifadesi olabilir. \u00d6rne\u011fin, her 5 dakikada bir \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <code>rate(5 minutes)<\/code> veya her g\u00fcn sabah 9'da \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <code>cron(0 9 * * ? *)<\/code> gibi bir ifade kullanabilirsiniz.<\/li>\n<li>\"Ekle\" (Add) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/li>\n<\/ol>\n<p>Belirledi\u011finiz zaman aral\u0131klar\u0131nda Lambda fonksiyonunuz otomatik olarak \u00e7al\u0131\u015facak ve belirli g\u00f6revlerinizi d\u00fczenli olarak yerine getirecektir. Bu, geleneksel bir sunucuda cron tab yap\u0131land\u0131rma ihtiyac\u0131n\u0131 ortadan kald\u0131r\u0131r ve y\u00f6netim y\u00fck\u00fcn\u00fc b\u00fcy\u00fck \u00f6l\u00e7\u00fcde azalt\u0131r.<\/p>\n<p>Bu tetikleyici \u00f6rnekleri, AWS Lambda'n\u0131n ne kadar \u00e7ok y\u00f6nl\u00fc oldu\u011funu ve \u00e7e\u015fitli uygulama senaryolar\u0131na nas\u0131l entegre edilebilece\u011fini g\u00f6stermektedir. Do\u011fru tetikleyiciyi se\u00e7mek, uygulaman\u0131z\u0131n gereksinimlerine ve mimarisine ba\u011fl\u0131d\u0131r. Ancak her durumda, Lambda'n\u0131n olay odakl\u0131 yap\u0131s\u0131, uygulaman\u0131z\u0131n daha verimli, \u00f6l\u00e7eklenebilir ve maliyet etkin olmas\u0131n\u0131 sa\u011flar.<\/p>\n<h2 id=\"ileri-duzey-lambda-gelistirme-ipuclari-ve-en-iyi-uygulamalar\">\u0130leri D\u00fczey Lambda Geli\u015ftirme \u0130pu\u00e7lar\u0131 ve En \u0130yi Uygulamalar<\/h2>\n<p>AWS Lambda'y\u0131 kullanmaya ba\u015flad\u0131k\u00e7a, sadece temel fonksiyonlar\u0131 olu\u015fturmaktan \u00f6teye ge\u00e7mek isteyeceksiniz. Performans\u0131 optimize etmek, maliyetleri d\u00fc\u015f\u00fcrmek, g\u00fcvenlik sa\u011flamak ve geli\u015ftirme s\u00fcrecini kolayla\u015ft\u0131rmak i\u00e7in ileri d\u00fczey teknikler ve en iyi uygulamalar mevcuttur. Bu b\u00f6l\u00fcmde, Lambda fonksiyonlar\u0131n\u0131z\u0131 daha verimli, dayan\u0131kl\u0131 ve y\u00f6netilebilir hale getirecek \u00f6nemli ipu\u00e7lar\u0131n\u0131 ve yakla\u015f\u0131mlar\u0131 ke\u015ffedece\u011fiz.<\/p>\n<h3 id=\"ortam-degiskenleri-ve-gizli-bilgileri-yonetme\">Ortam De\u011fi\u015fkenleri ve Gizli Bilgileri Y\u00f6netme<\/h3>\n<p>Fonksiyonunuzun veritaban\u0131 ba\u011flant\u0131 dizeleri, API anahtarlar\u0131 veya di\u011fer yap\u0131land\u0131rma parametreleri gibi bilgilere ihtiyac\u0131 olabilir. Bu t\u00fcr bilgileri do\u011frudan kodunuzun i\u00e7ine g\u00f6mmek k\u00f6t\u00fc bir pratiktir, \u00e7\u00fcnk\u00fc g\u00fcvenlik riskleri ta\u015f\u0131r ve kodun yeniden kullan\u0131labilirli\u011fini azalt\u0131r. AWS Lambda, bu t\u00fcr bilgileri y\u00f6netmek i\u00e7in ortam de\u011fi\u015fkenlerini (Environment Variables) kullanman\u0131za olanak tan\u0131r. Ortam de\u011fi\u015fkenleri, fonksiyonunuzu yap\u0131land\u0131r\u0131rken Lambda konsolu \u00fczerinden veya AWS CLI\/SAM\/Serverless Framework gibi ara\u00e7lar arac\u0131l\u0131\u011f\u0131yla tan\u0131mlan\u0131r.<\/p>\n<pre><code class=\"language-python\">\nimport os\nimport json\n\ndef lambda_handler(event, context):\n    api_key = os.environ.get('MY_API_KEY')\n    db_host = os.environ.get('DATABASE_HOST')\n\n    if not api_key or not db_host:\n        print(\"Uyar\u0131: Gerekli ortam de\u011fi\u015fkenleri tan\u0131ml\u0131 de\u011fil!\")\n        return {\n            'statusCode': 500,\n            'body': json.dumps('Ortam de\u011fi\u015fkeni hatas\u0131')\n        }\n    \n    # API anahtar\u0131n\u0131 ve veritaban\u0131 ana bilgisayar\u0131n\u0131 kullanarak i\u015flemler yap\u0131n\n    print(f\"API Anahtar\u0131: {api_key}, DB Host: {db_host}\")\n    return {\n        'statusCode': 200,\n        'body': json.dumps('Ba\u015far\u0131l\u0131!')\n    }\n<\/pre>\n<p><\/code><\/p>\n<p>Hassas bilgiler (\u015fifreler, \u00f6zel anahtarlar) i\u00e7in ortam de\u011fi\u015fkenleri hala tam olarak g\u00fcvenli de\u011fildir \u00e7\u00fcnk\u00fc konsoldan okunabilirler. Bu t\u00fcr durumlar i\u00e7in AWS KMS (Key Management Service) ile \u015fifreleme veya AWS Secrets Manager gibi hizmetleri kullanmal\u0131s\u0131n\u0131z. Secrets Manager, kimlik bilgilerini g\u00fcvenli bir \u015fekilde depolaman\u0131za ve y\u00f6netmenize olanak tan\u0131r ve Lambda fonksiyonlar\u0131n\u0131z bu bilgilere \u00e7al\u0131\u015fma zaman\u0131nda eri\u015febilir.<\/p>\n<h3 id=\"bagimliliklari-yonetme-ve-katmanlari-kullanma-layers\">Ba\u011f\u0131ml\u0131l\u0131klar\u0131 Y\u00f6netme ve Katmanlar\u0131 Kullanma (Layers)<\/h3>\n<p>\u00c7o\u011fu Lambda fonksiyonu, Python'daki <code>requests<\/code> k\u00fct\u00fcphanesi veya Node.js'deki <code>lodash<\/code> gibi harici k\u00fct\u00fcphanelere ba\u011f\u0131ml\u0131d\u0131r. Bu ba\u011f\u0131ml\u0131l\u0131klar\u0131 fonksiyon kodunuzla birlikte paketlemeniz gerekir. Ancak birden fazla fonksiyon ayn\u0131 ba\u011f\u0131ml\u0131l\u0131klara sahip oldu\u011funda, her fonksiyonun da\u011f\u0131t\u0131m paketine ayn\u0131 k\u00fct\u00fcphaneleri dahil etmek, paket boyutunu art\u0131r\u0131r ve gereksiz tekrar olu\u015fturur. \u0130\u015fte burada Lambda Katmanlar\u0131 (Lambda Layers) devreye girer.<\/p>\n<p>Katmanlar, kodunuzdan ayr\u0131 olarak y\u00f6netebilece\u011finiz ve birden fazla fonksiyona ekleyebilece\u011finiz bir ba\u011f\u0131ml\u0131l\u0131k veya yard\u0131mc\u0131 kod ZIP dosyas\u0131d\u0131r. \u00d6rne\u011fin, t\u00fcm Python fonksiyonlar\u0131n\u0131z\u0131n kulland\u0131\u011f\u0131 bir dizi k\u00fct\u00fcphaneyi tek bir katman olarak olu\u015fturabilir ve her fonksiyona bu katman\u0131 ekleyebilirsiniz. Bu, da\u011f\u0131t\u0131m paketlerinizin boyutunu k\u00fc\u00e7\u00fclt\u00fcr, geli\u015ftirme s\u00fcrecini h\u0131zland\u0131r\u0131r ve ba\u011f\u0131ml\u0131l\u0131k y\u00f6netimini merkezile\u015ftirir.<\/p>\n<pre><code class=\"language-bash\">\n# Python ba\u011f\u0131ml\u0131l\u0131klar\u0131 i\u00e7in katman olu\u015fturma \u00f6rne\u011fi (Linux\/macOS)\nmkdir -p python\/lib\/python3.9\/site-packages\npip install requests -t python\/lib\/python3.9\/site-packages\/\nzip -r my-dependencies-layer.zip python\n# AWS CLI ile katman y\u00fckleme \u00f6rne\u011fi:\n# aws lambda publish-layer-version --layer-name my-python-libs --zip-file fileb:\/\/my-dependencies-layer.zip --compatible-runtimes python3.9\n<\/pre>\n<p><\/code><\/p>\n<h3 id=\"performans-optimizasyonu-ve-maliyet-kontrolu\">Performans Optimizasyonu ve Maliyet Kontrol\u00fc<\/h3>\n<p>Lambda fonksiyonlar\u0131n\u0131n maliyeti ve performans\u0131, atanan bellek miktar\u0131yla do\u011frudan ili\u015fkilidir. Lambda'ya ne kadar bellek atarsan\u0131z, o oranda CPU g\u00fcc\u00fc de al\u0131rs\u0131n\u0131z. Bu nedenle, fonksiyonlar\u0131n\u0131z i\u00e7in do\u011fru bellek miktar\u0131n\u0131 bulmak hem performans hem de maliyet a\u00e7\u0131s\u0131ndan \u00f6nemlidir. \u00c7ok az bellek, fonksiyonunuzun yava\u015f \u00e7al\u0131\u015fmas\u0131na veya zaman a\u015f\u0131m\u0131na u\u011framas\u0131na neden olabilirken, \u00e7ok fazla bellek gereksiz maliyetlere yol a\u00e7abilir. AWS Lambda Power Tuning arac\u0131 gibi ara\u00e7lar, fonksiyonunuz i\u00e7in ideal bellek yap\u0131land\u0131rmas\u0131n\u0131 belirlemenize yard\u0131mc\u0131 olabilir.<\/p>\n<p class=\"expert-tip\">Uzman \u0130pucu: Cold start'lar\u0131 minimize etmek i\u00e7in, \u00f6zellikle gecikmeye duyarl\u0131 i\u015f y\u00fcklerinde \"Provisioned Concurrency\" (Sa\u011flanan E\u015fzamanl\u0131l\u0131k) kullanmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz. Bu \u00f6zellik, Lambda'n\u0131n belirli bir e\u015fzamanl\u0131l\u0131k d\u00fczeyini s\u00fcrekli \"warm\" tutmas\u0131n\u0131 sa\u011flayarak cold start s\u00fcrelerini neredeyse tamamen ortadan kald\u0131r\u0131r. Ancak bu, kullan\u0131m ba\u015f\u0131na ek bir maliyetle gelir.<\/p>\n<p>Ayr\u0131ca, fonksiyonlar\u0131n\u0131z\u0131 m\u00fcmk\u00fcn oldu\u011funca h\u0131zl\u0131 ve verimli olacak \u015fekilde tasarlay\u0131n. Kodunuzu optimize edin, gereksiz hesaplamalardan ka\u00e7\u0131n\u0131n ve I\/O i\u015flemlerini minimize edin. Veritaban\u0131 ba\u011flant\u0131lar\u0131 gibi kaynaklar\u0131 yeniden kullanmak i\u00e7in Global\/Static de\u011fi\u015fkenleri kullanmak, her \u00e7a\u011fr\u0131da yeniden ba\u015flat\u0131lmas\u0131n\u0131 \u00f6nleyerek cold start veya warm start durumlar\u0131nda performans\u0131 art\u0131rabilir.<\/p>\n<h3 id=\"sunucusuz-cerceveler-sam-ve-serverless-framework\">Sunucusuz \u00c7er\u00e7eveler: SAM ve Serverless Framework<\/h3>\n<p>AWS konsolu \u00fczerinden basit fonksiyonlar olu\u015fturmak kolay olsa da, karma\u015f\u0131k sunucusuz uygulamalar\u0131 y\u00f6netmek, da\u011f\u0131tmak ve s\u00fcr\u00fcm kontrol\u00fcne almak i\u00e7in daha geli\u015fmi\u015f ara\u00e7lara ihtiya\u00e7 duyulur. AWS SAM (Serverless Application Model) ve Serverless Framework, bu ihtiya\u00e7lar\u0131 kar\u015f\u0131lamak i\u00e7in tasarlanm\u0131\u015f pop\u00fcler a\u00e7\u0131k kaynakl\u0131 \u00e7er\u00e7evelerdir.<\/p>\n<ul>\n<li><strong>AWS SAM:<\/strong> AWS taraf\u0131ndan geli\u015ftirilen SAM, sunucusuz uygulamalar\u0131 AWS CloudFormation \u015fablonlar\u0131 arac\u0131l\u0131\u011f\u0131yla tan\u0131mlamak i\u00e7in basit bir s\u00f6zdizimi sa\u011flar. Fonksiyonlar\u0131n\u0131z\u0131, API Gateway'lerinizi, veritabanlar\u0131n\u0131z\u0131 ve di\u011fer AWS kaynaklar\u0131n\u0131z\u0131 tek bir dosyada tan\u0131mlayarak, uygulaman\u0131z\u0131n tamam\u0131n\u0131 s\u00fcr\u00fcm kontrol\u00fcne alabilir ve CI\/CD s\u00fcre\u00e7leriyle otomatik da\u011f\u0131tabilirsiniz.<\/li>\n<li><strong>Serverless Framework:<\/strong> Cloud agnostic (buluttan ba\u011f\u0131ms\u0131z) bir \u00e7er\u00e7eve olmas\u0131na ra\u011fmen AWS i\u00e7in olduk\u00e7a pop\u00fclerdir. SAM'e benzer \u015fekilde, YAML tabanl\u0131 bir yap\u0131land\u0131rma dosyas\u0131 kullanarak sunucusuz uygulaman\u0131z\u0131n t\u00fcm bile\u015fenlerini tan\u0131mlaman\u0131za olanak tan\u0131r. Geni\u015f eklenti ekosistemi ve aktif toplulu\u011fu sayesinde bir\u00e7ok geli\u015ftirici taraf\u0131ndan tercih edilir.<\/li>\n<\/ul>\n<p>Bu \u00e7er\u00e7eveler, geli\u015ftirme, test etme ve da\u011f\u0131t\u0131m s\u00fcre\u00e7lerini otomatikle\u015ftirmek i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar sunar ve b\u00fcy\u00fck \u00f6l\u00e7ekli sunucusuz projelerde vazge\u00e7ilmezdir. Yerel test, hata ay\u0131klama ve farkl\u0131 ortamlar i\u00e7in yap\u0131land\u0131rma gibi yetenekleriyle geli\u015ftirici verimlili\u011fini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131rlar.<\/p>\n<p>Uygulaman\u0131z\u0131n frontend taraf\u0131nda veya kullan\u0131c\u0131 aray\u00fcz\u00fc ile etkile\u015fimde olan k\u0131s\u0131mlarda mobil uyumlulu\u011fu sa\u011flamak i\u00e7in standart HTML ve CSS prensiplerine uyman\u0131z \u00f6nemlidir. \u00d6rne\u011fin, farkl\u0131 ekran boyutlar\u0131na adaptasyon i\u00e7in CSS media query'lerini kullanabilirsiniz:<\/p>\n<pre><code class=\"language-css\">\n\/* K\u00fc\u00e7\u00fck ekranlar i\u00e7in (mobil cihazlar) *\/\n@media screen and (max-width: 768px) {\n    .container {\n        width: 95%;\n        padding: 10px;\n    }\n    .navigation-menu {\n        flex-direction: column;\n        display: none; \/* Mobil men\u00fc i\u00e7in farkl\u0131 bir toggle *\/\n    }\n}\n\n\/* Orta ve b\u00fcy\u00fck ekranlar i\u00e7in *\/\n@media screen and (min-width: 769px) {\n    .container {\n        width: 80%;\n        margin: 0 auto;\n    }\n    .navigation-menu {\n        display: flex;\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekler do\u011frudan Lambda fonksiyon kodunuzla ilgili olmasa da, sunucusuz mimariyle geli\u015ftirilen web uygulamalar\u0131n\u0131n genel yap\u0131s\u0131nda mobil uyumlulu\u011fun nas\u0131l sa\u011fland\u0131\u011f\u0131na dair bir fikir vermektedir.<\/p>\n<p>Bu ileri d\u00fczey ipu\u00e7lar\u0131 ve en iyi uygulamalar, AWS Lambda yolculu\u011funuzda size rehberlik edecek ve daha sa\u011flam, performansl\u0131 ve y\u00f6netilebilir sunucusuz uygulamalar olu\u015fturman\u0131za yard\u0131mc\u0131 olacakt\u0131r. Lambda'n\u0131n s\u00fcrekli geli\u015fen do\u011fas\u0131 g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, AWS'nin yeni \u00f6zelliklerini ve duyurular\u0131n\u0131 takip etmek, en yeni ve en iyi uygulamalardan haberdar olman\u0131z\u0131 sa\u011flayacakt\u0131r.<\/p>\n<h2 id=\"sonuc-lambda-fonksiyonlariyla-gelecegin-uygulamalarini-insa-etmek\">Sonu\u00e7: Lambda Fonksiyonlar\u0131yla Gelece\u011fin Uygulamalar\u0131n\u0131 \u0130n\u015fa Etmek<\/h2>\n<p>Bu kapsaml\u0131 rehber boyunca, AWS Lambda'n\u0131n ne oldu\u011funu, neden bu kadar pop\u00fcler oldu\u011funu, temel bile\u015fenlerini ve ad\u0131m ad\u0131m bir fonksiyonu nas\u0131l olu\u015fturaca\u011f\u0131m\u0131z\u0131 \u00f6\u011frendik. Ayr\u0131ca, API Gateway, S3 ve EventBridge gibi farkl\u0131 tetikleyicilerle Lambda fonksiyonlar\u0131n\u0131z\u0131 nas\u0131l entegre edebilece\u011finizi ve ger\u00e7ek d\u00fcnya senaryolar\u0131nda nas\u0131l kullanabilece\u011finizi ke\u015ffettik. Son olarak, ortam de\u011fi\u015fkenleri, katmanlar, performans optimizasyonu ve sunucusuz \u00e7er\u00e7eveler gibi ileri d\u00fczey konulara de\u011finerek, Lambda uygulamalar\u0131n\u0131z\u0131 daha sa\u011flam ve verimli hale getirecek en iyi uygulamalar\u0131 inceledik.<\/p>\n<p>AWS Lambda, uygulama geli\u015ftirme paradigmas\u0131n\u0131 d\u00f6n\u00fc\u015ft\u00fcren, \u00f6l\u00e7eklenebilir, maliyet etkin ve y\u00f6netim y\u00fck\u00fc d\u00fc\u015f\u00fck bir hizmet sunmaktad\u0131r. Sunucu altyap\u0131s\u0131n\u0131n karma\u015f\u0131kl\u0131\u011f\u0131ndan kurtulup do\u011frudan i\u015f mant\u0131\u011f\u0131n\u0131za odaklanma yetene\u011fi, geli\u015ftirme h\u0131z\u0131n\u0131 art\u0131r\u0131r ve inovasyonu te\u015fvik eder. \u0130ster k\u00fc\u00e7\u00fck bir proje ister b\u00fcy\u00fck \u00f6l\u00e7ekli bir kurumsal uygulama geli\u015ftiriyor olun, Lambda'n\u0131n sundu\u011fu esneklik ve g\u00fc\u00e7, modern bulut tabanl\u0131 uygulamalar olu\u015fturmak i\u00e7in vazge\u00e7ilmez bir ara\u00e7t\u0131r.<\/p>\n<p>Sunucusuz mimari, gelece\u011fin uygulama geli\u015ftirme \u015feklidir ve AWS Lambda bu gelece\u011fin merkezinde yer al\u0131r. Bu rehberde edindi\u011finiz bilgilerle, kendi sunucusuz yolculu\u011funuza confidently ba\u015flayabilir ve AWS bulutunun sundu\u011fu s\u0131n\u0131rs\u0131z olanaklardan faydalanabilirsiniz. Unutmay\u0131n, pratik yapmak ve farkl\u0131 senaryolar\u0131 denemek, Lambda'y\u0131 daha iyi anlaman\u0131n ve ustala\u015fman\u0131n en iyi yoludur.<\/p>\n<h3 id=\"sikca-sorulan-sorular-sss\">S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<p>A\u015fa\u011f\u0131da, AWS Lambda hakk\u0131nda s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan baz\u0131 sorular ve yan\u0131tlar\u0131 bulunmaktad\u0131r:<\/p>\n<ol>\n<li><strong>Lambda fonksiyonlar\u0131 ne kadar s\u00fcre \u00e7al\u0131\u015fabilir?<\/strong>\n<p>AWS Lambda fonksiyonlar\u0131, varsay\u0131lan olarak maksimum 15 dakika (900 saniye) boyunca \u00e7al\u0131\u015fabilir. Bu s\u00fcre, \u00e7o\u011fu sunucusuz i\u015f y\u00fck\u00fc i\u00e7in yeterlidir. Daha uzun s\u00fcren i\u015flemler i\u00e7in AWS Step Functions gibi di\u011fer hizmetlerle entegrasyon d\u00fc\u015f\u00fcnebilirsiniz.<\/p>\n<\/li>\n<li><strong>Lambda'n\u0131n maliyeti nas\u0131l hesaplan\u0131r?<\/strong>\n<p>Lambda'n\u0131n maliyeti, kodunuzun y\u00fcr\u00fct\u00fclme say\u0131s\u0131 (invocation) ve fonksiyonunuzun \u00e7al\u0131\u015ft\u0131\u011f\u0131 s\u00fcre boyunca t\u00fcketilen bellek miktar\u0131na g\u00f6re hesaplan\u0131r. AWS'nin \u00fccretsiz kullan\u0131m katman\u0131, her ay belirli say\u0131da \u00fccretsiz \u00e7a\u011fr\u0131 ve GB-saniye sa\u011flar. Bu, \u00f6zellikle k\u00fc\u00e7\u00fck projeler veya denemeler i\u00e7in olduk\u00e7a avantajl\u0131d\u0131r.<\/p>\n<\/li>\n<li><strong>Lambda hangi programlama dillerini destekler?<\/strong>\n<p>AWS Lambda, \u00e7e\u015fitli programlama dillerini destekler: Node.js, Python, Java, C#, Go, Ruby ve PowerShell. Ayr\u0131ca, \"custom runtime\" (\u00f6zel \u00e7al\u0131\u015fma zaman\u0131) \u00f6zelli\u011fi sayesinde Docker kapsay\u0131c\u0131lar\u0131 veya di\u011fer dilleri kullanarak kendi \u00e7al\u0131\u015fma zaman\u0131n\u0131z\u0131 da getirebilirsiniz.<\/p>\n<\/li>\n<li><strong>Lambda ile veritaban\u0131 ba\u011flant\u0131s\u0131 nas\u0131l yap\u0131l\u0131r?<\/strong>\n<p>Lambda fonksiyonlar\u0131, genellikle VPC i\u00e7inde \u00f6zel veritabanlar\u0131na (\u00f6rne\u011fin Amazon RDS) ba\u011flan\u0131r. Fonksiyonunuzu bir VPC'ye ba\u011flad\u0131\u011f\u0131n\u0131zda, veritaban\u0131n\u0131za g\u00fcvenli bir \u015fekilde eri\u015febilir. Sunucusuz veritabanlar\u0131 (Amazon Aurora Serverless) veya DynamoDB gibi NoSQL veritabanlar\u0131, Lambda ile \u00f6zellikle iyi entegre olur.<\/p>\n<\/li>\n<li><strong>Cold start nedir ve nas\u0131l azalt\u0131l\u0131r?<\/strong>\n<p>Cold start, bir Lambda fonksiyonu uzun s\u00fcre kullan\u0131lmad\u0131\u011f\u0131nda ilk \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda ortaya \u00e7\u0131kan gecikmedir. Lambda, kodunuzu y\u00fcklemek ve \u00e7al\u0131\u015fma zaman\u0131 ortam\u0131n\u0131 ba\u015flatmak i\u00e7in yeni bir kapsay\u0131c\u0131 sa\u011flamak zorunda kal\u0131r. Bunu azaltmak i\u00e7in, fonksiyonunuza daha fazla bellek atayabilir (genellikle CPU'yu da art\u0131r\u0131r), Python veya Node.js gibi daha h\u0131zl\u0131 ba\u015flat\u0131lan \u00e7al\u0131\u015fma zamanlar\u0131n\u0131 tercih edebilir veya \"Provisioned Concurrency\" \u00f6zelli\u011fini kullanarak fonksiyonunuzu s\u00fcrekli haz\u0131r tutabilirsiniz.<\/p>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"AWS Lambda, bulut tabanl\u0131 sunucusuz bir i\u015flem hizmeti olarak, geli\u015ftiricilere kodlar\u0131n\u0131 sunucu altyap\u0131s\u0131 y\u00f6netme zahmetine girmeden \u00e7al\u0131\u015ft\u0131rma imkan\u0131&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1406],"tags":[],"class_list":{"0":"post-30922","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-aws","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AWS&#039;de Lambda Fonksiyonu Olu\u015fturma Rehberi<\/title>\n<meta name=\"description\" content=\"AWS Lambda, bulut tabanl\u0131 sunucusuz bir i\u015flem hizmeti olarak, geli\u015ftiricilere kodlar\u0131n\u0131 sunucu altyap\u0131s\u0131 y\u00f6netme zahmetine girmeden \u00e7al\u0131\u015ft\u0131rma imkan\u0131 sunar. Bu kapsaml\u0131 rehberde, AWS Lambda fonksiyonlar\u0131n\u0131 ba\u015ftan sona nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AWS&#039;de Lambda Fonksiyonu Olu\u015fturma Rehberi\" \/>\n<meta property=\"og:description\" content=\"AWS Lambda, bulut tabanl\u0131 sunucusuz bir i\u015flem hizmeti olarak, geli\u015ftiricilere kodlar\u0131n\u0131 sunucu altyap\u0131s\u0131 y\u00f6netme zahmetine girmeden \u00e7al\u0131\u015ft\u0131rma imkan\u0131 sunar. Bu kapsaml\u0131 rehberde, AWS Lambda fonksiyonlar\u0131n\u0131 ba\u015ftan sona nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-03T10:02:55+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"27 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"AWS&#8217;de Lambda Fonksiyonu Olu\u015fturma Rehberi\",\"datePublished\":\"2025-10-03T10:02:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/\"},\"wordCount\":5165,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"AWS\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/\",\"name\":\"AWS'de Lambda Fonksiyonu Olu\u015fturma Rehberi\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-03T10:02:55+00:00\",\"description\":\"AWS Lambda, bulut tabanl\u0131 sunucusuz bir i\u015flem hizmeti olarak, geli\u015ftiricilere kodlar\u0131n\u0131 sunucu altyap\u0131s\u0131 y\u00f6netme zahmetine girmeden \u00e7al\u0131\u015ft\u0131rma imkan\u0131 sunar. Bu kapsaml\u0131 rehberde, AWS Lambda fonksiyonlar\u0131n\u0131 ba\u015ftan sona nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AWS&#8217;de Lambda Fonksiyonu Olu\u015fturma Rehberi\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"AWS'de Lambda Fonksiyonu Olu\u015fturma Rehberi","description":"AWS Lambda, bulut tabanl\u0131 sunucusuz bir i\u015flem hizmeti olarak, geli\u015ftiricilere kodlar\u0131n\u0131 sunucu altyap\u0131s\u0131 y\u00f6netme zahmetine girmeden \u00e7al\u0131\u015ft\u0131rma imkan\u0131 sunar. Bu kapsaml\u0131 rehberde, AWS Lambda fonksiyonlar\u0131n\u0131 ba\u015ftan sona nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"AWS'de Lambda Fonksiyonu Olu\u015fturma Rehberi","og_description":"AWS Lambda, bulut tabanl\u0131 sunucusuz bir i\u015flem hizmeti olarak, geli\u015ftiricilere kodlar\u0131n\u0131 sunucu altyap\u0131s\u0131 y\u00f6netme zahmetine girmeden \u00e7al\u0131\u015ft\u0131rma imkan\u0131 sunar. Bu kapsaml\u0131 rehberde, AWS Lambda fonksiyonlar\u0131n\u0131 ba\u015ftan sona nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.","og_url":"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-03T10:02:55+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"27 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"AWS&#8217;de Lambda Fonksiyonu Olu\u015fturma Rehberi","datePublished":"2025-10-03T10:02:55+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/"},"wordCount":5165,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["AWS"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/","name":"AWS'de Lambda Fonksiyonu Olu\u015fturma Rehberi","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-03T10:02:55+00:00","description":"AWS Lambda, bulut tabanl\u0131 sunucusuz bir i\u015flem hizmeti olarak, geli\u015ftiricilere kodlar\u0131n\u0131 sunucu altyap\u0131s\u0131 y\u00f6netme zahmetine girmeden \u00e7al\u0131\u015ft\u0131rma imkan\u0131 sunar. Bu kapsaml\u0131 rehberde, AWS Lambda fonksiyonlar\u0131n\u0131 ba\u015ftan sona nas\u0131l olu\u015fturaca\u011f\u0131n\u0131z\u0131, yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m \u00f6\u011freneceksiniz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/awsde-lambda-fonksiyonu-olusturma-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"AWS&#8217;de Lambda Fonksiyonu Olu\u015fturma Rehberi"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30922","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=30922"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/30922\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=30922"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=30922"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=30922"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}