{"id":31106,"date":"2025-10-05T21:31:52","date_gmt":"2025-10-05T18:31:52","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/"},"modified":"2025-10-05T21:31:52","modified_gmt":"2025-10-05T18:31:52","slug":"api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/","title":{"rendered":"API Gateway ile G\u00fcvenli ve G\u00f6zlemlenebilir Sunucusuz API&#8217;ler"},"content":{"rendered":"<p><body><\/p>\n<p>Amazon API Gateway&#8217;i yaln\u0131zca bir proxy&#8217;den fazlas\u0131 olarak nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ke\u015ffedin. G\u00fcvenli, izlenebilir ve \u00f6l\u00e7eklenebilir sunucusuz API&#8217;ler in\u015fa etmenin inceliklerini \u00f6\u011frenin. Bu kapsaml\u0131 rehber, temelden ileri d\u00fczeye kadar her seviyeden geli\u015ftirici i\u00e7in pratik bilgiler sunuyor.<\/p>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen dijital d\u00fcnyas\u0131nda, uygulamalar\u0131n arka ucu olarak hizmet veren API&#8217;ler, i\u015f s\u00fcre\u00e7lerinin ve kullan\u0131c\u0131 deneyimlerinin temelini olu\u015fturuyor. Geleneksel yakla\u015f\u0131mlar, sunucular\u0131n y\u00f6netimi, \u00f6l\u00e7eklendirme ve g\u00fcvenlik gibi operasyonel y\u00fcklerle gelirken, sunucusuz mimariler bu y\u00fck\u00fc \u00f6nemli \u00f6l\u00e7\u00fcde hafifletiyor. Amazon API Gateway, AWS ekosisteminde bu d\u00f6n\u00fc\u015f\u00fcm\u00fcn merkezinde yer alan kritik bir hizmettir. Ancak bir\u00e7ok geli\u015ftirici, API Gateway&#8217;i yaln\u0131zca gelen HTTP isteklerini arka u\u00e7 hizmetlerine (\u00f6rne\u011fin AWS Lambda fonksiyonlar\u0131na) y\u00f6nlendiren basit bir &#8220;proxy&#8221; olarak g\u00f6rme e\u011filimindedir. Oysa ki bu hizmet, sundu\u011fu zengin \u00f6zellik setleri sayesinde \u00e7ok daha fazlas\u0131n\u0131 yapabilir ve yapmal\u0131d\u0131r.<\/p>\n<p>Bir API&#8217;nin yaln\u0131zca i\u015f mant\u0131\u011f\u0131n\u0131 icra etmesi yeterli de\u011fildir; ayn\u0131 zamanda g\u00fcvenli, esnek, \u00f6l\u00e7eklenebilir ve kolayca g\u00f6zlemlenebilir olmas\u0131 gerekir. Kullan\u0131c\u0131 kimlik do\u011frulamas\u0131ndan yetkilendirmeye, trafik limitlemeden \u00f6n bellekleme mekanizmalar\u0131na, hatta kapsaml\u0131 izleme ve loglama yeteneklerine kadar bir\u00e7ok kritik i\u015flevi \u00fcstlenebilen API Gateway, bu sayede uygulaman\u0131z\u0131n kalitesini ve s\u00fcrd\u00fcr\u00fclebilirli\u011fini do\u011frudan etkiler. \u00d6rne\u011fin, y\u00fcksek trafikli bir e-ticaret uygulamas\u0131n\u0131 d\u00fc\u015f\u00fcnelim. E\u011fer API&#8217;niz gelen yo\u011fun istekleri do\u011fru bir \u015fekilde y\u00f6netemez, yetkisiz eri\u015fimleri engelleyemez veya olas\u0131 hatalar\u0131 h\u0131zl\u0131ca tespit edemezse, m\u00fc\u015fteri deneyimi olumsuz etkilenir ve i\u015f kayb\u0131 ya\u015fanabilir. \u0130\u015fte tam da bu noktada, API Gateway&#8217;in bir proxy olmaktan \u00e7\u0131k\u0131p, API y\u00f6netiminin merkezi bir bile\u015feni haline gelmesi devreye girer. Bu makale boyunca, API Gateway&#8217;in sundu\u011fu t\u00fcm bu yetenekleri nas\u0131l etkin bir \u015fekilde kullanabilece\u011fimizi, g\u00fcvenli ve g\u00f6zlemlenebilir sunucusuz API&#8217;ler in\u015fa ederken nelere dikkat etmemiz gerekti\u011fini ad\u0131m ad\u0131m inceleyece\u011fiz. B\u00f6ylece, sadece bir proxy kurmakla kalmay\u0131p, i\u015flevsel ve diren\u00e7li bir API mimarisi olu\u015fturman\u0131n yollar\u0131n\u0131 ke\u015ffedece\u011fiz. Gelin, bu yolculukta bize e\u015flik edin ve sunucusuz API&#8217;lerin ger\u00e7ek potansiyelini birlikte a\u00e7\u0131\u011fa \u00e7\u0131karal\u0131m.<\/p>\n<h2>Amazon API Gateway&#8217;e Yak\u0131ndan Bak\u0131\u015f: Temel Kavramlar ve Yetenekler Nelerdir?<\/h2>\n<p>Amazon API Gateway, geli\u015ftiricilerin herhangi bir \u00f6l\u00e7ekte API olu\u015fturmas\u0131n\u0131, yay\u0131nlamas\u0131n\u0131, bak\u0131m\u0131n\u0131 yapmas\u0131n\u0131, izlemesini ve g\u00fcvenli\u011fini sa\u011flamas\u0131n\u0131 kolayla\u015ft\u0131ran tam olarak y\u00f6netilen bir hizmettir. Temelde bir API ya\u015fam d\u00f6ng\u00fcs\u00fc y\u00f6netim arac\u0131 olarak g\u00f6rev yapar. \u0130\u015fte temel bile\u015fenleri ve yetenekleri:<\/p>\n<ul>\n<li><strong>API Tipleri:<\/strong> API Gateway, farkl\u0131 kullan\u0131m senaryolar\u0131na uygun \u00fc\u00e7 ana API tipi sunar:\n<ul>\n<li><strong>REST API&#8217;ler:<\/strong> HTTP protokol\u00fc \u00fczerinden ileti\u015fim kuran geleneksel RESTful API&#8217;ler i\u00e7in tasarlanm\u0131\u015ft\u0131r. Genellikle JSON veya XML format\u0131nda veri al\u0131\u015fveri\u015fi yapar.<\/li>\n<li><strong>HTTP API&#8217;ler:<\/strong> REST API&#8217;lere g\u00f6re daha maliyet etkin ve daha h\u0131zl\u0131 bir alternatiftir. Genellikle basit proxy i\u015flevleri ve belirli entegrasyonlar i\u00e7in tercih edilir.<\/li>\n<li><strong>WebSocket API&#8217;ler:<\/strong> Ger\u00e7ek zamanl\u0131 \u00e7ift y\u00f6nl\u00fc ileti\u015fim gerektiren uygulamalar (\u00f6rne\u011fin chat uygulamalar\u0131, canl\u0131 veri ak\u0131\u015flar\u0131) i\u00e7in kullan\u0131l\u0131r.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Entegrasyon Tipleri:<\/strong> API Gateway, gelen istekleri farkl\u0131 arka u\u00e7 hizmetlerine y\u00f6nlendirebilir:\n<ul>\n<li><strong>Lambda Entegrasyonu:<\/strong> En yayg\u0131n kullan\u0131lan entegrasyon tipidir. API istekleri bir AWS Lambda fonksiyonunu tetikler. Bu, sunucusuz mimarilerin temelini olu\u015fturur.<\/li>\n<li><strong>HTTP Entegrasyonu:<\/strong> \u0130stekleri harici bir HTTP endpoint&#8217;ine (\u00f6rne\u011fin bir web sunucusu, ba\u015fka bir mikroservis) iletir.<\/li>\n<li><strong>AWS Hizmet Entegrasyonu:<\/strong> \u0130stekleri do\u011frudan ba\u015fka bir AWS hizmetine (\u00f6rne\u011fin DynamoDB, SQS, Kinesis) y\u00f6nlendirir. Bu, sunucusuz mimaride do\u011frudan entegrasyonlar i\u00e7in g\u00fc\u00e7l\u00fc bir y\u00f6ntemdir.<\/li>\n<li><strong>Mock Entegrasyonu:<\/strong> Arka u\u00e7 hizmeti haz\u0131r olmadan \u00f6nce API&#8217;yi test etmek veya statik yan\u0131tlar d\u00f6nd\u00fcrmek i\u00e7in kullan\u0131l\u0131r.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Kaynaklar ve Metotlar:<\/strong> Bir API, HTTP metotlar\u0131 (GET, POST, PUT, DELETE vb.) ile ili\u015fkili kaynaklardan (\u00f6rne\u011fin <code>\/\u00fcr\u00fcnler<\/code>, <code>\/kullan\u0131c\u0131lar\/{id}<\/code>) olu\u015fur. Her metot, belirli bir entegrasyon tipiyle yap\u0131land\u0131r\u0131l\u0131r.<\/li>\n<li><strong>Da\u011f\u0131t\u0131m A\u015famalar\u0131 (Stages):<\/strong> API&#8217;lerinizi farkl\u0131 ortamlarda (\u00f6rne\u011fin <code>dev<\/code>, <code>test<\/code>, <code>prod<\/code>) da\u011f\u0131tman\u0131za olanak tan\u0131r. Her a\u015fama i\u00e7in farkl\u0131 yap\u0131land\u0131rmalar (\u00f6nbellekleme, loglama, yetkilendirme) tan\u0131mlanabilir.<\/li>\n<li><strong>\u00d6zel Alan Adlar\u0131 (Custom Domains):<\/strong> API&#8217;nizi kendi alan ad\u0131n\u0131z \u00fczerinden (\u00f6rne\u011fin <code>api.ornek.com<\/code>) eri\u015filebilir hale getirmenizi sa\u011flar, b\u00f6ylece markan\u0131zla uyumlu ve profesyonel bir g\u00f6r\u00fcn\u00fcm sunar.<\/li>\n<li><strong>G\u00fcvenlik \u00d6zellikleri:<\/strong> Kimlik do\u011frulama, yetkilendirme, AWS WAF entegrasyonu gibi kapsaml\u0131 g\u00fcvenlik mekanizmalar\u0131 sunar.<\/li>\n<li><strong>Performans ve \u00d6l\u00e7eklenebilirlik:<\/strong> Otomatik \u00f6l\u00e7eklenir, trafik limitleme (throttling), \u00f6nbellekleme (caching) gibi \u00f6zelliklerle performans art\u0131\u015f\u0131 sa\u011flar.<\/li>\n<li><strong>\u0130zleme ve Loglama:<\/strong> Amazon CloudWatch ile entegrasyonu sayesinde API kullan\u0131m\u0131n\u0131, hatalar\u0131 ve performans\u0131 kolayca izlemenizi sa\u011flar.<\/li>\n<\/ul>\n<p>API Gateway&#8217;in bu kadar geni\u015f bir yelpazede yetenek sunmas\u0131, onu sunucusuz API mimarilerinin sadece bir giri\u015f kap\u0131s\u0131 olmaktan \u00e7\u0131kar\u0131p, t\u00fcm API y\u00f6netim stratejinizin merkezi bir bile\u015feni haline getiriyor. Uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re bu \u00f6zellikleri ak\u0131ll\u0131ca kullanarak, geli\u015ftirme s\u00fcre\u00e7lerinizi h\u0131zland\u0131rabilir ve operasyonel maliyetlerinizi d\u00fc\u015f\u00fcrebilirsiniz. Ancak bu yeteneklerin her birini do\u011fru bir \u015fekilde anlamak ve yap\u0131land\u0131rmak, hem g\u00fcvenli hem de verimli API&#8217;ler olu\u015fturman\u0131n anahtar\u0131d\u0131r.<\/p>\n<h2>G\u00fcvenli Bir Sunucusuz API Nas\u0131l \u0130n\u015fa Edilir? Kimlik Do\u011frulama ve Yetkilendirme Stratejileri<\/h2>\n<p>API g\u00fcvenli\u011fi, herhangi bir modern uygulaman\u0131n en kritik y\u00f6nlerinden biridir. Yetkisiz eri\u015fimi engellemek, veri ihlallerini \u00f6nlemek ve hassas bilgileri korumak i\u00e7in sa\u011flam kimlik do\u011frulama (authentication) ve yetkilendirme (authorization) mekanizmalar\u0131na ihtiya\u00e7 duyar\u0131z. Amazon API Gateway, bu ihtiya\u00e7lar\u0131 kar\u015f\u0131lamak i\u00e7in \u00e7e\u015fitli g\u00fc\u00e7l\u00fc ara\u00e7lar sunar.<\/p>\n<h3>Kimlik Do\u011frulama ve Yetkilendirme Se\u00e7enekleri Nelerdir?<\/h3>\n<p>API Gateway&#8217;de temel olarak d\u00f6rt ana kimlik do\u011frulama ve yetkilendirme y\u00f6ntemi bulunur:<\/p>\n<ol>\n<li><strong>API Anahtarlar\u0131 (API Keys):<\/strong> En basit g\u00fcvenlik mekanizmalar\u0131ndan biridir. API anahtarlar\u0131, belirli bir API&#8217;ye eri\u015fimi k\u0131s\u0131tlamak i\u00e7in kullan\u0131labilir. Genellikle kullan\u0131m oranlar\u0131n\u0131 izlemek ve belirli t\u00fcketicilere eri\u015fim vermek i\u00e7in kullan\u0131l\u0131r. Ancak API anahtarlar\u0131 tek ba\u015f\u0131na g\u00fc\u00e7l\u00fc bir g\u00fcvenlik mekanizmas\u0131 de\u011fildir, \u00e7\u00fcnk\u00fc kolayca ele ge\u00e7irilebilir ve \u00e7al\u0131nabilirler. Genellikle yetkilendirme i\u00e7in de\u011fil, kullan\u0131m takibi ve basit eri\u015fim kontrol\u00fc i\u00e7in tercih edilir.<\/li>\n<li><strong>IAM Yetkilendiricileri (IAM Authorizers):<\/strong> E\u011fer API&#8217;niz, AWS ekosistemi i\u00e7inde \u00e7al\u0131\u015fan di\u011fer AWS hizmetleri veya IAM rolleri\/kullan\u0131c\u0131lar\u0131 taraf\u0131ndan t\u00fcketilecekse, IAM yetkilendiricileri ideal bir \u00e7\u00f6z\u00fcmd\u00fcr. API Gateway, gelen iste\u011fin AWS Signature Version 4 ile imzalanm\u0131\u015f olup olmad\u0131\u011f\u0131n\u0131 kontrol eder ve iste\u011fi yapan\u0131n IAM politikalar\u0131na g\u00f6re yetkilendirme yapar. Bu y\u00f6ntem, AWS i\u00e7indeki hizmetler aras\u0131 ileti\u015fimde y\u00fcksek d\u00fczeyde g\u00fcvenlik sa\u011flar.<\/li>\n<li><strong>Amazon Cognito Kullan\u0131c\u0131 Havuzlar\u0131 (Cognito User Pools):<\/strong> Mobil ve web uygulamalar\u0131 i\u00e7in kullan\u0131c\u0131 kayd\u0131, oturum a\u00e7ma ve kimlik y\u00f6netimi sa\u011flayan tam y\u00f6netilen bir hizmettir. API Gateway, bir Cognito Kullan\u0131c\u0131 Havuzu ile entegre olarak, kullan\u0131c\u0131lar\u0131n JWT (JSON Web Token) tabanl\u0131 kimlik do\u011frulama ile API&#8217;ye eri\u015fmesini sa\u011flayabilir. Kullan\u0131c\u0131lar Cognito arac\u0131l\u0131\u011f\u0131yla oturum a\u00e7t\u0131ktan sonra ald\u0131klar\u0131 JWT token&#8217;\u0131n\u0131 API isteklerinde g\u00f6nderirler ve API Gateway bu token&#8217;\u0131 do\u011frulayarak yetkilendirme yapar. Bu, genellikle son kullan\u0131c\u0131lar\u0131n API&#8217;ye eri\u015fti\u011fi senaryolarda tercih edilir.<\/li>\n<li><strong>Lambda Yetkilendiricileri (Lambda Authorizers &#8211; Custom Authorizers):<\/strong> Bu y\u00f6ntem, API Gateway&#8217;in sa\u011flad\u0131\u011f\u0131 yerle\u015fik yetkilendirme se\u00e7eneklerinin \u00f6tesine ge\u00e7meniz gerekti\u011finde devreye girer. Bir Lambda yetkilendiricisi, gelen API iste\u011fini yakalar, iste\u011fin kimli\u011fini ve yetkilendirme bilgisini (\u00f6rne\u011fin \u00f6zel bir JWT token, harici bir kimlik sa\u011flay\u0131c\u0131dan gelen bir session ID) analiz eder ve API Gateway&#8217;e iste\u011fin kabul edilip edilmeyece\u011fini bildiren bir IAM politikas\u0131 d\u00f6nd\u00fcr\u00fcr. Bu, esneklik a\u00e7\u0131s\u0131ndan en g\u00fc\u00e7l\u00fc se\u00e7enektir ve \u00f6zel yetkilendirme mant\u0131\u011f\u0131 (\u00f6rne\u011fin \u00e7ok fakt\u00f6rl\u00fc kimlik do\u011frulama kontrol\u00fc, \u00f6zel veritaban\u0131ndan yetki sorgulama) uygulaman\u0131za olanak tan\u0131r.<\/li>\n<\/ol>\n<h3>Vaka Analizi: Hassas Veri API&#8217;sinin G\u00fcvenli\u011fi<\/h3>\n<p>Bir sa\u011fl\u0131k uygulamas\u0131n\u0131n, hasta kay\u0131tlar\u0131na eri\u015fim sa\u011flayan bir API geli\u015ftirdi\u011fini varsayal\u0131m. Bu API&#8217;nin HIPAA uyumlu olmas\u0131 ve en \u00fcst d\u00fczeyde g\u00fcvenli\u011fe sahip olmas\u0131 gerekmektedir. Bu senaryoda:<\/p>\n<ul>\n<li>Son kullan\u0131c\u0131lar (hastalar ve doktorlar) i\u00e7in <strong>Amazon Cognito Kullan\u0131c\u0131 Havuzlar\u0131<\/strong> tercih edilmelidir. Cognito, kullan\u0131c\u0131lar\u0131n kimlik do\u011frulamas\u0131n\u0131 g\u00fcvenli bir \u015fekilde y\u00f6netirken, \u00e7ok fakt\u00f6rl\u00fc kimlik do\u011frulama gibi \u00f6zelliklerle g\u00fcvenli\u011fi art\u0131r\u0131r.<\/li>\n<li>API&#8217;nin arka ucunda \u00e7al\u0131\u015fan AWS Lambda fonksiyonlar\u0131n\u0131n veya di\u011fer mikroservislerin birbirleriyle g\u00fcvenli bir \u015fekilde ileti\u015fim kurmas\u0131 i\u00e7in <strong>IAM Yetkilendiricileri<\/strong> kullan\u0131labilir. Bu, hizmetler aras\u0131 ileti\u015fimin sadece yetkili IAM rolleri taraf\u0131ndan yap\u0131lmas\u0131n\u0131 sa\u011flar.<\/li>\n<li>E\u011fer API&#8217;ye eri\u015fim i\u00e7in \u00f6zel bir kurumsal SSO (Tek Oturum A\u00e7ma) \u00e7\u00f6z\u00fcm\u00fc kullan\u0131l\u0131yorsa veya daha karma\u015f\u0131k rol tabanl\u0131 eri\u015fim kontrolleri (RBAC) gerekiyorsa, <strong>Lambda Yetkilendiricileri<\/strong> devreye girebilir. Bu yetkilendirici, SSO&#8217;dan gelen token&#8217;lar\u0131 do\u011frulayabilir ve kullan\u0131c\u0131n\u0131n sahip oldu\u011fu rollere g\u00f6re dinamik olarak eri\u015fim politikalar\u0131 olu\u015fturabilir.<\/li>\n<li>Son olarak, DDoS sald\u0131r\u0131lar\u0131 ve di\u011fer web tabanl\u0131 tehditlere kar\u015f\u0131 korunmak i\u00e7in <strong>AWS WAF (Web Application Firewall)<\/strong>, API Gateway ile entegre edilmelidir. WAF, k\u00f6t\u00fc niyetli istekleri daha API Gateway&#8217;e ula\u015fmadan filtreleyerek ek bir koruma katman\u0131 sa\u011flar.<\/li>\n<\/ul>\n<p>Bu \u00e7ok katmanl\u0131 g\u00fcvenlik yakla\u015f\u0131m\u0131, API&#8217;nin hem d\u0131\u015f tehditlere hem de i\u00e7 yetkisiz eri\u015fimlere kar\u015f\u0131 korunmas\u0131n\u0131 sa\u011flar. Do\u011fru yetkilendirme stratejisinin se\u00e7imi, uygulaman\u0131z\u0131n do\u011fas\u0131na ve g\u00fcvenlik gereksinimlerine ba\u011fl\u0131d\u0131r. Genellikle, en iyi g\u00fcvenlik uygulamas\u0131, birden fazla y\u00f6ntemi birle\u015ftirmekten ge\u00e7er.<\/p>\n<div class=\"expert-tip\">\n      Uzman \u0130pucu: Lambda Yetkilendiricileri kullan\u0131rken, yetkilendirme yan\u0131t\u0131n\u0131 (IAM politikas\u0131) \u00f6nbelle\u011fe alarak (caching) performans maliyetlerini d\u00fc\u015f\u00fcrebilirsiniz. Ancak yetkilendirme mant\u0131\u011f\u0131n\u0131z \u00e7ok s\u0131k de\u011fi\u015fiyorsa veya her iste\u011fin an\u0131nda yeniden do\u011frulanmas\u0131 gerekiyorsa \u00f6nbellekleme dikkatli kullan\u0131lmal\u0131d\u0131r.\n    <\/div>\n<h2>Uygulamal\u0131 Ad\u0131mlar: G\u00fcvenli ve \u0130zlenebilir Bir Lambda Destekli API Olu\u015fturma<\/h2>\n<p>\u015eimdi, \u00f6\u011frendiklerimizi pratik bir senaryoya uygulayal\u0131m. Basit bir &#8220;merhaba d\u00fcnya&#8221; mesaj\u0131 d\u00f6nd\u00fcren ve izlenebilirlik i\u00e7in yap\u0131land\u0131r\u0131lm\u0131\u015f bir API olu\u015fturaca\u011f\u0131z. Bu API, bir Lambda fonksiyonu taraf\u0131ndan desteklenecek ve API Gateway \u00fczerinden eri\u015filebilir olacak.<\/p>\n<h3>Lambda Entegrasyonu ile \u0130lk API&#8217;n\u0131z\u0131 Olu\u015fturun: Ad\u0131m Ad\u0131m Rehber<\/h3>\n<ol>\n<li><strong>AWS Lambda Fonksiyonu Olu\u015fturma:<\/strong>\n<p>\u0130lk ad\u0131m olarak, API iste\u011fini i\u015fleyecek bir Lambda fonksiyonu olu\u015fturmam\u0131z gerekiyor. AWS konsoluna gidin, Lambda hizmetini se\u00e7in ve &#8220;Create function&#8221; (Fonksiyon olu\u015ftur) d\u00fc\u011fmesine t\u0131klay\u0131n.<\/p>\n<ul>\n<li><strong>Function name (Fonksiyon ad\u0131):<\/strong> <code>HelloWorldApiFunction<\/code><\/li>\n<li><strong>Runtime (\u00c7al\u0131\u015fma zaman\u0131):<\/strong> Node.js 18.x (veya tercih etti\u011finiz ba\u015fka bir dil)<\/li>\n<li><strong>Architecture (Mimari):<\/strong> x86_64<\/li>\n<li><strong>Permissions (\u0130zinler):<\/strong> &#8220;Create a new role with basic Lambda permissions&#8221; (Temel Lambda izinleriyle yeni bir rol olu\u015ftur) se\u00e7ene\u011fini i\u015faretleyin. Bu rol, CloudWatch Logs&#8217;a g\u00fcnl\u00fck yazma izni verecektir.<\/li>\n<\/ul>\n<p>Fonksiyonu olu\u015fturduktan sonra, kod alan\u0131na a\u015fa\u011f\u0131daki Node.js kodunu yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-javascript\">\nexports.handler = async (event) => {\n    \/\/ API Gateway'den gelen istek nesnesi (event) genellikle JSON format\u0131ndad\u0131r.\n    console.log(\"Gelen \u0130stek Event'i:\", JSON.stringify(event, null, 2));\n\n    let responseMessage = \"Merhaba d\u00fcnya! API Gateway ve Lambda'ya ho\u015f geldiniz.\";\n    let statusCode = 200;\n\n    \/\/ E\u011fer istek bir sorgu parametresi veya body i\u00e7eriyorsa \u00f6zelle\u015ftirme yapabiliriz.\n    if (event.queryStringParameters && event.queryStringParameters.name) {\n        responseMessage = <code>Merhaba, ${event.queryStringParameters.name}! Sunucusuz d\u00fcnyadan selamlar.<\/code>;\n    } else if (event.body) {\n        try {\n            const body = JSON.parse(event.body);\n            if (body.name) {\n                responseMessage = <code>Merhaba, ${body.name}! \u0130stek g\u00f6vdesinden geldi.<\/code>;\n            }\n        } catch (error) {\n            console.error(\"\u0130stek g\u00f6vdesi ayr\u0131\u015ft\u0131r\u0131lamad\u0131:\", error);\n            responseMessage = \"Hatal\u0131 istek g\u00f6vdesi format\u0131.\";\n            statusCode = 400;\n        }\n    }\n\n    const response = {\n        statusCode: statusCode,\n        headers: {\n            \"Content-Type\": \"application\/json\",\n            \"Access-Control-Allow-Origin\": \"*\", \/\/ CORS i\u00e7in gerekli\n            \"Access-Control-Allow-Methods\": \"GET, POST, OPTIONS\",\n            \"Access-Control-Allow-Headers\": \"Content-Type, X-Amz-Date, Authorization, X-Api-Key, X-Amz-Security-Token\"\n        },\n        body: JSON.stringify({ message: responseMessage }),\n    };\n    return response;\n};\n            <\/pre>\n<p><\/code><\/p>\n<p>Bu kod, gelen iste\u011fi loglar, basit bir mesaj d\u00f6nd\u00fcr\u00fcr ve e\u011fer bir isim parametresi varsa mesaj\u0131 ki\u015fiselle\u015ftirir. Ayr\u0131ca CORS (Originler Aras\u0131 Kaynak Payla\u015f\u0131m\u0131) ba\u015fl\u0131klar\u0131n\u0131 da ekledik, bu genellikle web taray\u0131c\u0131lar\u0131ndan gelen istekler i\u00e7in gereklidir.<\/p>\n<\/li>\n<li><strong>Amazon API Gateway Yap\u0131land\u0131rmas\u0131:<\/strong>\n<p>\u015eimdi bu Lambda fonksiyonunu bir API Gateway endpoint'i \u00fczerinden eri\u015filebilir hale getirece\u011fiz.<\/p>\n<ul>\n<li>AWS konsolunda API Gateway hizmetine gidin.<\/li>\n<li><strong>\"API olu\u015ftur\"<\/strong> (Create API) se\u00e7ene\u011fini t\u0131klay\u0131n.<\/li>\n<li><strong>HTTP API<\/strong> se\u00e7ene\u011fini se\u00e7in ve \"Build\" (Olu\u015ftur) butonuna bas\u0131n (Daha maliyet etkin ve h\u0131zl\u0131 oldu\u011fu i\u00e7in HTTP API kullanaca\u011f\u0131z, ancak REST API'ler de benzer \u015fekilde yap\u0131land\u0131r\u0131labilir).<\/li>\n<li><strong>Integrations (Entegrasyonlar):<\/strong> \"Add integration\" (Entegrasyon ekle) se\u00e7ene\u011fini se\u00e7in. Integration type olarak \"Lambda\"y\u0131, Integration target olarak da az \u00f6nce olu\u015fturdu\u011fumuz <code>HelloWorldApiFunction<\/code>'\u0131 se\u00e7in.<\/li>\n<li><strong>API name (API ad\u0131):<\/strong> <code>MyHelloWorldApi<\/code><\/li>\n<li>\u0130leri butonuna t\u0131klayarak devam edin.<\/li>\n<li><strong>Routes (Yollar):<\/strong> API'nizin hangi yollar \u00fczerinden eri\u015filebilir olaca\u011f\u0131n\u0131 belirleyin.\n<ul>\n<li><strong>Method (Metot):<\/strong> <code>ANY<\/code> (GET, POST gibi t\u00fcm HTTP metotlar\u0131n\u0131 destekler)<\/li>\n<li><strong>Path (Yol):<\/strong> <code>\/hello<\/code><\/li>\n<li><strong>Attach integrations (Entegrasyonlar\u0131 ba\u011fla):<\/strong> Az \u00f6nce olu\u015fturdu\u011fumuz Lambda entegrasyonunu se\u00e7in.<\/li>\n<\/ul>\n<\/li>\n<li>\u0130leri butonuna t\u0131klayarak devam edin.<\/li>\n<li><strong>Stages (A\u015famalar):<\/strong> Varsay\u0131lan olarak bir <code>$default<\/code> a\u015famas\u0131 olu\u015fturulacakt\u0131r. Bunu oldu\u011fu gibi b\u0131rak\u0131n.<\/li>\n<li>\u0130leri butonuna t\u0131klay\u0131n ve son olarak <strong>\"Olu\u015ftur\"<\/strong> (Create) butonuna bas\u0131n.<\/li>\n<\/ul>\n<p>API Gateway, API'nizi da\u011f\u0131tt\u0131ktan sonra size bir \"Invoke URL\" (\u00c7a\u011f\u0131rma URL'si) sa\u011flayacakt\u0131r. Bu URL, API'nizin herkese a\u00e7\u0131k eri\u015fim noktas\u0131d\u0131r. \u00d6rne\u011fin: <code>https:\/\/xxxxxxxxx.execute-api.us-east-1.amazonaws.com\/hello<\/code><\/p>\n<\/li>\n<li><strong>API'yi Test Etme:<\/strong>\n<p>Bu URL'yi web taray\u0131c\u0131n\u0131zda a\u00e7t\u0131\u011f\u0131n\u0131zda veya cURL gibi bir ara\u00e7la istek g\u00f6nderdi\u011finizde, Lambda fonksiyonunuzun yan\u0131t\u0131n\u0131 g\u00f6rmelisiniz:<\/p>\n<pre><code class=\"language-bash\">\ncurl https:\/\/xxxxxxxxx.execute-api.us-east-1.amazonaws.com\/hello\n# Beklenen \u00c7\u0131kt\u0131: {\"message\":\"Merhaba d\u00fcnya! API Gateway ve Lambda'ya ho\u015f geldiniz.\"}\n\ncurl \"https:\/\/xxxxxxxxx.execute-api.us-east-1.amazonaws.com\/hello?name=Alper\"\n# Beklenen \u00c7\u0131kt\u0131: {\"message\":\"Merhaba, Alper! Sunucusuz d\u00fcnyadan selamlar.\"}\n\ncurl -X POST -H \"Content-Type: application\/json\" -d '{\"name\":\"Geli\u015ftirici\"}' https:\/\/xxxxxxxxx.execute-api.us-east-1.amazonaws.com\/hello\n# Beklenen \u00c7\u0131kt\u0131: {\"message\":\"Merhaba, Geli\u015ftirici! \u0130stek g\u00f6vdesinden geldi.\"}\n            <\/pre>\n<p><\/code>\n        <\/li>\n<\/ol>\n<p>Tebrikler! G\u00fcvenli (temel Lambda izinleri ile) ve izlenebilir bir sunucusuz API olu\u015fturdunuz. \u015eimdi bu API'nin g\u00f6zlemlenebilirli\u011fini daha da art\u0131rma ve geli\u015fmi\u015f \u00f6zelliklerini kullanma zaman\u0131.<\/p>\n<h2>API'n\u0131z\u0131 Nas\u0131l G\u00f6zlemlenebilir K\u0131lars\u0131n\u0131z? Kapsaml\u0131 \u0130zleme ve Loglama Teknikleri<\/h2>\n<p>Bir API'nin sadece \u00e7al\u0131\u015f\u0131r durumda olmas\u0131 yetmez; ayn\u0131 zamanda performans\u0131n\u0131, hatalar\u0131n\u0131 ve kullan\u0131m \u015fekillerini de anlamam\u0131z gerekir. G\u00f6zlemlenebilirlik (observability), sisteminizin i\u00e7 durumunu d\u0131\u015far\u0131dan g\u00f6zlemleyerek anlamam\u0131z\u0131 sa\u011flayan bir kavramd\u0131r. Amazon API Gateway ve entegre AWS hizmetleri, API'leriniz i\u00e7in kapsaml\u0131 g\u00f6zlemlenebilirlik ara\u00e7lar\u0131 sunar.<\/p>\n<h3>CloudWatch ve X-Ray ile Derinlemesine \u0130zleme: Performans ve Hata Tespiti<\/h3>\n<ol>\n<li><strong>Amazon CloudWatch Logs: API Gateway Eri\u015fim ve Y\u00fcr\u00fctme Loglar\u0131<\/strong>\n<p>API Gateway, her gelen istek ve Lambda fonksiyonu y\u00fcr\u00fctmesi hakk\u0131nda detayl\u0131 loglar \u00fcretebilir. Bu loglar, Amazon CloudWatch Logs'ta saklan\u0131r ve API'nizin davran\u0131\u015f\u0131n\u0131 anlamak i\u00e7in \u00e7ok de\u011ferli bilgiler i\u00e7erir.<\/p>\n<ul>\n<li><strong>Eri\u015fim Loglar\u0131 (Access Logs):<\/strong> API'ye yap\u0131lan her iste\u011fin ayr\u0131nt\u0131lar\u0131n\u0131 (IP adresi, istek zaman\u0131, yan\u0131t s\u00fcresi, durum kodu vb.) i\u00e7erir. Bu loglar, API kullan\u0131m desenlerini, olas\u0131 g\u00fcvenlik tehditlerini ve genel trafik analizi i\u00e7in kritik \u00f6neme sahiptir. API Gateway'de her a\u015fama i\u00e7in ayr\u0131 ayr\u0131 etkinle\u015ftirilir.<\/li>\n<li><strong>Y\u00fcr\u00fctme Loglar\u0131 (Execution Logs):<\/strong> API Gateway'in iste\u011fi nas\u0131l i\u015fledi\u011fini, entegrasyon hatalar\u0131n\u0131, yetkilendirme sorunlar\u0131n\u0131 ve d\u00f6n\u00fc\u015f\u00fcm ad\u0131mlar\u0131n\u0131 g\u00f6sterir. \u00d6zellikle hata ay\u0131klama (debugging) ve sorun giderme (troubleshooting) i\u00e7in kullan\u0131l\u0131r.<\/li>\n<\/ul>\n<p><strong>Nas\u0131l Etkinle\u015ftirilir?<\/strong><\/p>\n<p>API Gateway konsolunda, API'nizin \u00fczerine t\u0131klay\u0131n, sol men\u00fcden \"Stages\" (A\u015famalar) b\u00f6l\u00fcm\u00fcne gidin. \u0130lgili a\u015famay\u0131 se\u00e7in (\u00f6rne\u011fin <code>$default<\/code>). \"Logs\/Tracing\" (Loglar\/\u0130zleme) sekmesine gidin. Burada \"CloudWatch logs\" se\u00e7ene\u011fini etkinle\u015ftirin ve bir log d\u00fczeyi (ERROR, INFO, DEBUG) se\u00e7in. Ayr\u0131ca, Eri\u015fim Loglar\u0131n\u0131 da yap\u0131land\u0131rabilirsiniz. Bir CloudWatch Log Grubu belirtmeniz gerekecektir.<\/p>\n<pre><code class=\"language-json\">\n\/\/ \u00d6rnek API Gateway Eri\u015fim Log Format\u0131 (JSON)\n{\n  \"requestId\": \"$context.requestId\",\n  \"ip\": \"$context.identity.sourceIp\",\n  \"caller\": \"$context.identity.caller\",\n  \"user\": \"$context.identity.user\",\n  \"requestTime\": \"$context.requestTime\",\n  \"httpMethod\": \"$context.httpMethod\",\n  \"resourcePath\": \"$context.resourcePath\",\n  \"status\": \"$context.status\",\n  \"protocol\": \"$context.protocol\",\n  \"responseLength\": \"$context.responseLength\",\n  \"responseLatency\": \"$context.responseLatency\",\n  \"errorMessage\": \"$context.error.message\"\n}\n            <\/pre>\n<p><\/code><\/p>\n<p>Bu JSON format\u0131nda loglama, CloudWatch Logs Insights ile kolayca sorgulanabilir ve analiz edilebilir loglar olu\u015fturman\u0131z\u0131 sa\u011flar.<\/p>\n<\/li>\n<li><strong>Amazon CloudWatch Metrikleri: Performans G\u00f6stergeleri<\/strong>\n<p>API Gateway, varsay\u0131lan olarak API'nizin performans\u0131yla ilgili bir dizi metri\u011fi CloudWatch'a otomatik olarak g\u00f6nderir. Bunlar \u015funlar\u0131 i\u00e7erir:<\/p>\n<ul>\n<li><strong>Count (Say\u0131):<\/strong> API'ye yap\u0131lan toplam istek say\u0131s\u0131.<\/li>\n<li><strong>Latency (Gecikme):<\/strong> API Gateway'in arka u\u00e7 entegrasyonuna istek g\u00f6ndermesi ile yan\u0131t almas\u0131 aras\u0131ndaki s\u00fcre.<\/li>\n<li><strong>Integration Latency (Entegrasyon Gecikmesi):<\/strong> Arka u\u00e7 hizmetinin iste\u011fi i\u015fleme s\u00fcresi.<\/li>\n<li><strong>4xxError, 5xxError:<\/strong> \u0130stemci veya sunucu kaynakl\u0131 hata oranlar\u0131.<\/li>\n<\/ul>\n<p>Bu metrikler, API'nizin sa\u011fl\u0131kl\u0131 \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131, performans darbo\u011fazlar\u0131n\u0131 ve hata oranlar\u0131ndaki ani y\u00fckseli\u015fleri tespit etmek i\u00e7in kullan\u0131labilir. CloudWatch panolar\u0131 (dashboards) olu\u015fturarak bu metrikleri g\u00f6rselle\u015ftirebilir ve alarmlar (alarms) kurarak belirli e\u015fik de\u011ferler a\u015f\u0131ld\u0131\u011f\u0131nda bildirim alabilirsiniz.<\/p>\n<\/li>\n<li><strong>AWS X-Ray: Da\u011f\u0131t\u0131lm\u0131\u015f \u0130zleme<\/strong>\n<p>Sunucusuz mimarilerde, bir istek birden fazla Lambda fonksiyonu, veritaban\u0131 sorgusu veya di\u011fer AWS hizmeti aras\u0131nda gidip gelebilir. Bir sorunun kayna\u011f\u0131n\u0131 bulmak, bu da\u011f\u0131t\u0131lm\u0131\u015f sistemlerde zorlay\u0131c\u0131 olabilir. AWS X-Ray, bu senaryo i\u00e7in tasarlanm\u0131\u015ft\u0131r.<\/p>\n<p>X-Ray, isteklerin uygulaman\u0131z boyunca nas\u0131l akt\u0131\u011f\u0131n\u0131 g\u00f6steren bir \"hizmet haritas\u0131\" olu\u015fturur. Her bir bile\u015fenin (API Gateway, Lambda, DynamoDB vb.) iste\u011fi i\u015fleme s\u00fcresini, hatalar\u0131 ve gecikmeleri g\u00f6rsel olarak g\u00f6sterir. Bu sayede, performans darbo\u011fazlar\u0131n\u0131 veya hatalar\u0131n nerede meydana geldi\u011fini h\u0131zl\u0131ca tespit edebilirsiniz.<\/p>\n<p><strong>Nas\u0131l Etkinle\u015ftirilir?<\/strong><\/p>\n<ul>\n<li>Lambda fonksiyonunuzun yap\u0131land\u0131rma sayfas\u0131nda \"Monitoring and operations tools\" (\u0130zleme ve operasyon ara\u00e7lar\u0131) alt\u0131nda \"Enable active tracing\" (Aktif izlemeyi etkinle\u015ftir) se\u00e7ene\u011fini i\u015faretleyin.<\/li>\n<li>API Gateway a\u015famas\u0131n\u0131n \"Logs\/Tracing\" sekmesinde \"Enable X-Ray tracing\" (X-Ray izlemeyi etkinle\u015ftir) se\u00e7ene\u011fini i\u015faretleyin.<\/li>\n<\/ul>\n<pre><code class=\"language-javascript\">\n\/\/ Lambda fonksiyonunuzda X-Ray izleme i\u00e7in SDK kullan\u0131m\u0131 (Node.js)\nconst AWS = require('aws-sdk');\nconst AWSXRay = require('aws-xray-sdk-core');\nconst aws = AWSXRay.captureAWS(require('aws-sdk')); \/\/ AWS SDK \u00e7a\u011fr\u0131lar\u0131n\u0131 yakala\n\nexports.handler = async (event) => {\n    \/\/ Mevcut segmenti al (API Gateway taraf\u0131ndan ba\u015flat\u0131ld\u0131ysa) veya yeni bir segment ba\u015flat\n    const segment = AWSXRay.get \\\\_current \\\\_segment();\n    const subsegment = segment.addNewSubsegment('CustomLambdaLogic');\n    \n    \/\/ \u0130\u015f mant\u0131\u011f\u0131n\u0131z burada\n    console.log(\"Lambda fonksiyonu tetiklendi.\");\n    await new Promise(resolve => setTimeout(resolve, 50)); \/\/ Sim\u00fcle edilmi\u015f bir i\u015f y\u00fck\u00fc\n    \n    subsegment.close(); \/\/ Alt segmenti kapat\n    \n    \/\/ \u00d6rne\u011fin, DynamoDB'ye bir \u00e7a\u011fr\u0131 yaparsan\u0131z, X-Ray bunu otomatik olarak yakalar.\n    \/\/ const ddb = new aws.DynamoDB.DocumentClient();\n    \/\/ await ddb.put({ TableName: \"MyTable\", Item: { id: \"1\", data: \"test\" } }).promise();\n\n    return {\n        statusCode: 200,\n        body: JSON.stringify({ message: \"Merhaba d\u00fcnya, X-Ray ile izleniyor!\" }),\n    };\n};\n            <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, Lambda i\u00e7inde \u00f6zel bir alt segment olu\u015fturarak, kendi kodunuzun belirli b\u00f6l\u00fcmlerinin performans\u0131n\u0131 da X-Ray \u00fczerinden izleyebilirsiniz. Bu, \u00f6zellikle karma\u015f\u0131k i\u015f mant\u0131\u011f\u0131na sahip fonksiyonlar i\u00e7in \u00e7ok yararl\u0131d\u0131r.<\/p>\n<\/li>\n<\/ol>\n<p>Bu ara\u00e7lar\u0131 birle\u015ftirerek, API'lerinizin ne kadar iyi \u00e7al\u0131\u015ft\u0131\u011f\u0131na dair kapsaml\u0131 bir g\u00f6r\u00fc\u015f elde edersiniz. Olas\u0131 sorunlar\u0131 proaktif olarak tespit edebilir, performans iyile\u015ftirmeleri yapabilir ve kullan\u0131c\u0131lar\u0131n\u0131za daha g\u00fcvenilir bir hizmet sunabilirsiniz. G\u00f6zlemlenebilirlik, sadece bir \"ekstra\" de\u011fil, modern sunucusuz API mimarilerinin temel bir dire\u011fidir.<\/p>\n<h2>\u0130leri D\u00fczey API Gateway Kullan\u0131m\u0131: Performans, Esneklik ve Y\u00f6netim<\/h2>\n<p>API Gateway'i sadece temel i\u015flevleriyle kullanmak yerine, geli\u015fmi\u015f \u00f6zelliklerini ke\u015ffetmek, API'lerinizin performans\u0131n\u0131, esnekli\u011fini ve y\u00f6netimini \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir. Bu b\u00f6l\u00fcmde, deneyimli kullan\u0131c\u0131lar i\u00e7in baz\u0131 ipu\u00e7lar\u0131 ve p\u00fcf noktalar\u0131na de\u011finece\u011fiz.<\/p>\n<h3>API Performans\u0131n\u0131 Art\u0131rmak \u0130\u00e7in \u00d6n Bellekleme ve Limitleme<\/h3>\n<ol>\n<li><strong>\u00d6n Bellekleme (Caching):<\/strong>\n<p>Y\u00fcksek trafikli API'lerde, her iste\u011fin arka ucu (Lambda fonksiyonu veya di\u011fer servisler) tetiklemesi, hem maliyeti art\u0131r\u0131r hem de yan\u0131t s\u00fcrelerini uzat\u0131r. API Gateway'in entegre \u00f6nbellekleme mekanizmas\u0131, belirli yan\u0131tlar\u0131 \u00f6nbelle\u011fe alarak bu sorunu \u00e7\u00f6zebilir.<\/p>\n<ul>\n<li><strong>Nas\u0131l \u00c7al\u0131\u015f\u0131r?<\/strong> API Gateway, belirli bir s\u00fcre boyunca (TTL - Time To Live) \u00f6nceden belirlenmi\u015f yan\u0131tlar\u0131 saklar. Ayn\u0131 istek tekrar geldi\u011finde, arka uca ula\u015fmadan \u00f6nbellekten yan\u0131t verilir.<\/li>\n<li><strong>Ne Zaman Kullan\u0131lmal\u0131?<\/strong> S\u0131k eri\u015filen, ancak i\u00e7eri\u011fi nadiren de\u011fi\u015fen veriler (\u00f6rne\u011fin \u00fcr\u00fcn kataloglar\u0131, sabit yap\u0131land\u0131rma verileri, blog g\u00f6nderileri) i\u00e7in idealdir.<\/li>\n<li><strong>Yap\u0131land\u0131rma:<\/strong> API Gateway konsolunda bir a\u015fama (stage) se\u00e7ip \"Cache\" (\u00d6nbellek) sekmesine giderek \u00f6nbelle\u011fi etkinle\u015ftirebilirsiniz. \u00d6nbellek boyutunu, TTL de\u011ferini ve \u00f6nbelle\u011fin nas\u0131l anahtarlanaca\u011f\u0131n\u0131 (\u00f6rne\u011fin sorgu parametreleri, ba\u015fl\u0131klar) yap\u0131land\u0131rabilirsiniz.<\/li>\n<\/ul>\n<pre><code class=\"language-json\">\n\/\/ \u00d6rnek Lambda fonksiyonunda \u00f6nbellek kontrol ba\u015fl\u0131klar\u0131\nconst response = {\n    statusCode: 200,\n    headers: {\n        \"Content-Type\": \"application\/json\",\n        \"Cache-Control\": \"max-age=300, public\" \/\/ Taray\u0131c\u0131 ve proxy'ler i\u00e7in 5 dakika \u00f6nbellekleme\n    },\n    body: JSON.stringify({ data: \"\u00d6nbelle\u011fe al\u0131nacak veri\" }),\n};\nreturn response;\n            <\/pre>\n<p><\/code><\/p>\n<p>API Gateway \u00f6nbelle\u011fi, istemci taraf\u0131 \u00f6nbellekleme ba\u015fl\u0131klar\u0131ndan (Cache-Control) ba\u011f\u0131ms\u0131z \u00e7al\u0131\u015f\u0131r ancak bu ba\u015fl\u0131klar\u0131 kullanarak genel \u00f6nbellekleme stratejinizi g\u00fc\u00e7lendirebilirsiniz.<\/p>\n<\/li>\n<li><strong>Trafik Limitleme (Throttling) ve Kullan\u0131m Planlar\u0131 (Usage Plans):<\/strong>\n<p>API'nizi k\u00f6t\u00fc niyetli veya a\u015f\u0131r\u0131 kullan\u0131mdan korumak i\u00e7in trafik limitleme kritik \u00f6neme sahiptir. API Gateway, belirli bir s\u00fcre i\u00e7inde kabul edilecek istek say\u0131s\u0131n\u0131 s\u0131n\u0131rlayabilir.<\/p>\n<ul>\n<li><strong>Hesap D\u00fczeyi Limitleme:<\/strong> T\u00fcm API Gateway hesab\u0131n\u0131zdaki t\u00fcm API'ler i\u00e7in varsay\u0131lan bir genel limitleme ayar\u0131 bulunur.<\/li>\n<li><strong>A\u015fama D\u00fczeyi Limitleme:<\/strong> Her bir API a\u015famas\u0131 (stage) i\u00e7in (\u00f6rne\u011fin dev, prod) ayr\u0131 limitleme ayarlar\u0131 tan\u0131mlayabilirsiniz.<\/li>\n<li><strong>Metot D\u00fczeyi Limitleme:<\/strong> Belirli bir API metoduna (\u00f6rne\u011fin <code>GET \/urunler<\/code>) \u00f6zel limitlemeler uygulayabilirsiniz.<\/li>\n<li><strong>Kullan\u0131m Planlar\u0131 (Usage Plans):<\/strong> Bu, belirli API t\u00fcketicileri (uygulamalar veya geli\u015ftiriciler) i\u00e7in \u00f6zelle\u015ftirilmi\u015f eri\u015fim limitleri ve API anahtarlar\u0131 tan\u0131mlaman\u0131z\u0131 sa\u011flar. Bir kullan\u0131m plan\u0131 olu\u015fturup API anahtarlar\u0131n\u0131 ili\u015fkilendirerek, farkl\u0131 t\u00fcketici gruplar\u0131na farkl\u0131 limitler uygulayabilirsiniz (\u00f6rne\u011fin, \"\u00fccretsiz katman\" kullan\u0131c\u0131lar\u0131na daha d\u00fc\u015f\u00fck limitler, \"premium katman\" kullan\u0131c\u0131lar\u0131na daha y\u00fcksek limitler). Ayr\u0131ca, kullan\u0131m planlar\u0131 ile belirli bir d\u00f6nemdeki toplam istek say\u0131s\u0131n\u0131 da k\u0131s\u0131tlayabilirsiniz.<\/li>\n<\/ul>\n<p>Trafik limitleme, API'nizin istikrarl\u0131 kalmas\u0131n\u0131 sa\u011flarken, arka u\u00e7 hizmetlerinizin a\u015f\u0131r\u0131 y\u00fcklenmesini ve dolay\u0131s\u0131yla \u00e7\u00f6kmesini engeller.<\/p>\n<\/li>\n<li><strong>\u0130stek\/Yan\u0131t D\u00f6n\u00fc\u015f\u00fcmleri (Request\/Response Transformations):<\/strong>\n<p>API Gateway, gelen istekleri arka uca iletmeden \u00f6nce veya arka u\u00e7tan gelen yan\u0131tlar\u0131 istemciye d\u00f6nd\u00fcrmeden \u00f6nce de\u011fi\u015ftirebilir. Bu, API'nizin farkl\u0131 istemciler i\u00e7in farkl\u0131 formatlarda veri sunmas\u0131na veya arka u\u00e7 hizmetlerinizin bekledi\u011fi formatlara uyum sa\u011flamas\u0131na olanak tan\u0131r.<\/p>\n<ul>\n<li><strong>\u00d6rnek Senaryo:<\/strong> Lambda fonksiyonunuz basit bir JSON yan\u0131t\u0131 d\u00f6nd\u00fcr\u00fcyor, ancak eski bir istemci XML format\u0131nda yan\u0131t bekliyor. API Gateway, Lambda'dan gelen JSON yan\u0131t\u0131n\u0131 al\u0131p XML'e d\u00f6n\u00fc\u015ft\u00fcrerek istemciye iletebilir. Benzer \u015fekilde, istemciden gelen eski bir XML iste\u011fini Lambda'n\u0131n bekledi\u011fi JSON format\u0131na d\u00f6n\u00fc\u015ft\u00fcrebilir.<\/li>\n<li><strong>Nas\u0131l Yap\u0131l\u0131r?<\/strong> Her API metodu i\u00e7in \"Integration Request\" (Entegrasyon \u0130ste\u011fi) ve \"Integration Response\" (Entegrasyon Yan\u0131t\u0131) b\u00f6l\u00fcmlerinde Mapping Templates (E\u015fleme \u015eablonlar\u0131) kullanarak d\u00f6n\u00fc\u015f\u00fcmleri tan\u0131mlayabilirsiniz. Apache Velocity Template Language (VTL) kullan\u0131l\u0131r.<\/li>\n<\/ul>\n<pre><code class=\"language-apache\">\n\/\/ \u00d6rnek Bir Integration Request VTL \u015eablonu (Gelen XML'i JSON'a d\u00f6n\u00fc\u015ft\u00fcrme)\n#set($inputRoot = $input.path('$'))\n{\n    \"name\": \"$inputRoot.Customer.FirstName\",\n    \"email\": \"$inputRoot.Customer.Email\"\n}\n            <\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6zellik, API'nizin arkas\u0131ndaki servisleri de\u011fi\u015ftirmeden veya birden fazla API s\u00fcr\u00fcm\u00fc olu\u015fturmadan farkl\u0131 istemcilerin ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131laman\u0131za olanak tan\u0131r.<\/p>\n<\/li>\n<li><strong>\u00d6zel Alan Adlar\u0131 ve Sertifikalar:<\/strong>\n<p>API'nizi <code>api.ornek.com<\/code> gibi kendi markan\u0131zla uyumlu bir URL \u00fczerinden sunmak, profesyonellik katman\u0131n yan\u0131 s\u0131ra, gelecekte API Gateway'i ba\u015fka bir hizmetle de\u011fi\u015ftirmeniz gerekirse kesintisiz ge\u00e7i\u015f sa\u011flar. AWS Certificate Manager (ACM) ile \u00fccretsiz SSL\/TLS sertifikalar\u0131 olu\u015fturup API Gateway ile ili\u015fkilendirebilirsiniz.<\/p>\n<\/li>\n<li><strong>API Versiyonlama:<\/strong>\n<p>API'leriniz zamanla geli\u015fecektir. Geriye d\u00f6n\u00fck uyumlulu\u011fu bozmadan yeni \u00f6zellikler eklemek i\u00e7in versiyonlama \u00f6nemlidir. API Gateway'de bunu iki \u015fekilde yapabilirsiniz:<\/p>\n<ul>\n<li><strong>A\u015famalar (Stages) Kullanarak:<\/strong> <code>\/v1\/kullanicilar<\/code> ve <code>\/v2\/kullanicilar<\/code> gibi yollarla farkl\u0131 versiyonlar\u0131 farkl\u0131 a\u015famalara da\u011f\u0131tabilirsiniz.<\/li>\n<li><strong>Ba\u015fl\u0131klar (Headers) Kullanarak:<\/strong> \u0130stemcilerin istek ba\u015fl\u0131klar\u0131nda (\u00f6rne\u011fin <code>X-API-Version: 2<\/code>) hangi versiyonu istedi\u011fini belirlemesine izin verebilirsiniz.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<div class=\"expert-tip\">\n        Uzman \u0130pucu: Da\u011f\u0131t\u0131lm\u0131\u015f izleme i\u00e7in AWS X-Ray'i kullan\u0131rken, Lambda fonksiyonlar\u0131n\u0131zda X-Ray SDK's\u0131n\u0131 do\u011fru \u015fekilde entegre etti\u011finizden emin olun. Ayr\u0131ca, arka u\u00e7 hizmetleriniz (\u00f6rne\u011fin DynamoDB, SQS) i\u00e7in de X-Ray entegrasyonunu etkinle\u015ftirerek t\u00fcm i\u015flem zincirini g\u00f6rselle\u015ftirebilirsiniz. Bu, karma\u015f\u0131k sorunlar\u0131n k\u00f6k nedenini bulmada zaman kazand\u0131r\u0131r.\n    <\/div>\n<p>Bu ileri d\u00fczey \u00f6zellikler, API Gateway'i basit bir proxy olmaktan \u00e7\u0131kar\u0131p, g\u00fc\u00e7l\u00fc bir API y\u00f6netim platformuna d\u00f6n\u00fc\u015ft\u00fcr\u00fcr. Bunlar\u0131 ak\u0131ll\u0131ca kullanarak, yaln\u0131zca i\u015flevsel de\u011fil, ayn\u0131 zamanda performansl\u0131, g\u00fcvenli ve y\u00f6netimi kolay API'ler olu\u015fturabilirsiniz.<\/p>\n<p>Responsive tasar\u0131m i\u00e7in mobil uyumlu HTML \u00fcretme konusunda, bu makale API Gateway'in arka u\u00e7 hizmeti olmas\u0131 nedeniyle do\u011frudan HTML \u00fcretimiyle ilgili de\u011fildir. Ancak, API Gateway taraf\u0131ndan sunulan API'leri t\u00fcketen \u00f6n u\u00e7 uygulamalar\u0131n\u0131n (web siteleri, mobil uygulamalar) medya sorgular\u0131n\u0131 ve di\u011fer responsive tasar\u0131m tekniklerini kullanarak farkl\u0131 cihaz boyutlar\u0131na uyum sa\u011flayabilece\u011fini belirtmek \u00f6nemlidir. \u00d6rne\u011fin, bir web uygulamas\u0131, API'den ald\u0131\u011f\u0131 verileri mobil cihazlarda daha kompakt bir d\u00fczende, masa\u00fcst\u00fcnde ise daha detayl\u0131 bir d\u00fczende g\u00f6sterebilir. Bu, API'nin verileri tutarl\u0131 bir \u015fekilde sunmas\u0131, \u00f6n ucun ise bu verileri kullan\u0131c\u0131 deneyimine uygun \u015fekilde i\u015flemesiyle sa\u011flan\u0131r.<\/p>\n<h2>Sonu\u00e7: Gelece\u011fe Haz\u0131r API'ler ve S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<p>Bu makale boyunca, Amazon API Gateway'in basit bir proxy i\u015flevinin \u00e7ok \u00f6tesine ge\u00e7en yeteneklerini derinlemesine inceledik. G\u00fcvenlikten g\u00f6zlemlenebilirli\u011fe, performanstan esnekli\u011fe kadar geni\u015f bir yelpazede sundu\u011fu \u00f6zelliklerle, modern sunucusuz API mimarilerinin temel ta\u015f\u0131 oldu\u011funu g\u00f6rd\u00fck. Art\u0131k sadece istekleri y\u00f6nlendirmekle kalmay\u0131p, kimlik do\u011frulama, yetkilendirme, \u00f6nbellekleme, trafik limitleme, d\u00f6n\u00fc\u015f\u00fcmler ve kapsaml\u0131 izleme gibi kritik i\u015flevleri de API Gateway \u00fczerinden kolayca y\u00f6netebilece\u011finizi biliyorsunuz. Bu sayede, geli\u015ftirme s\u00fcre\u00e7lerinizi h\u0131zland\u0131r\u0131rken, operasyonel y\u00fck\u00fc azaltabilir ve kullan\u0131c\u0131lar\u0131n\u0131za daha g\u00fcvenilir, \u00f6l\u00e7eklenebilir ve g\u00fcvenli bir deneyim sunabilirsiniz.<\/p>\n<p>Sunucusuz mimariler ve API Gateway, s\u00fcrekli geli\u015fen bir aland\u0131r. Yeni \u00f6zellikler ve entegrasyonlar d\u00fczenli olarak eklenmektedir. Bu nedenle, AWS dok\u00fcmantasyonunu takip etmek, en son yeniliklerden haberdar olmak ve \u00f6\u011frendi\u011finiz bilgileri pratik projelerde uygulamak, becerilerinizi s\u00fcrekli g\u00fcncel tutman\u0131z\u0131 sa\u011flayacakt\u0131r. Unutmay\u0131n ki, ba\u015far\u0131l\u0131 bir API, sadece i\u015flevsel olmakla kalmaz, ayn\u0131 zamanda kolayca y\u00f6netilebilir, izlenebilir ve gelecekteki ihtiya\u00e7lara adapte olabilir olmal\u0131d\u0131r. API Gateway'in sundu\u011fu bu zengin ara\u00e7 setiyle, gelece\u011fin ihtiya\u00e7lar\u0131na haz\u0131r, sa\u011flam ve esnek API'ler in\u015fa etmeye haz\u0131rs\u0131n\u0131z. Ba\u015far\u0131l\u0131 sunucusuz projeler dileriz!<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular<\/h3>\n<ul>\n<li>\n            <strong>API Gateway'i kullanman\u0131n maliyeti nedir?<\/strong><\/p>\n<p>API Gateway maliyeti, API'nize gelen istek say\u0131s\u0131na, veri \u00e7\u0131k\u0131\u015f\u0131na ve kullan\u0131lan ek \u00f6zelliklere (\u00f6rne\u011fin \u00f6nbellekleme, WAF) g\u00f6re belirlenir. AWS'in \u00fccretsiz katman\u0131 belirli bir istek limitini kapsar. Detayl\u0131 fiyatland\u0131rma i\u00e7in AWS API Gateway fiyatland\u0131rma sayfas\u0131n\u0131 kontrol etmeniz \u00f6nerilir.<\/p>\n<\/li>\n<li>\n            <strong>REST API ile HTTP API aras\u0131ndaki temel fark nedir?<\/strong><\/p>\n<p>HTTP API'ler, REST API'lere g\u00f6re genellikle daha h\u0131zl\u0131 ve daha maliyet etkin \u00e7al\u0131\u015f\u0131r. Basit proxy i\u015flevleri ve AWS hizmet entegrasyonlar\u0131 i\u00e7in daha uygundurlar. REST API'ler ise daha fazla \u00f6zellik (\u00f6rne\u011fin API anahtarlar\u0131, kullan\u0131m planlar\u0131, istek\/yan\u0131t d\u00f6n\u00fc\u015f\u00fcmleri i\u00e7in daha esnek VTL \u015fablonlar\u0131, \u00f6zel yetkilendiriciler) sunar ancak maliyetleri biraz daha y\u00fcksek olabilir. Se\u00e7iminiz, uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na ve karma\u015f\u0131kl\u0131\u011f\u0131na ba\u011fl\u0131d\u0131r.<\/p>\n<\/li>\n<li>\n            <strong>API Gateway \u00fczerinden g\u00fcvenli\u011fi sa\u011flamak i\u00e7in en iyi y\u00f6ntem hangisidir?<\/strong><\/p>\n<p>En iyi y\u00f6ntem, uygulaman\u0131z\u0131n gereksinimlerine g\u00f6re de\u011fi\u015fir ancak genellikle \u00e7ok katmanl\u0131 bir yakla\u015f\u0131md\u0131r. Son kullan\u0131c\u0131lar i\u00e7in Cognito Kullan\u0131c\u0131 Havuzlar\u0131 veya Lambda Yetkilendiricileri, hizmetler aras\u0131 ileti\u015fim i\u00e7in IAM Yetkilendiricileri ve genel web tehditlerine kar\u015f\u0131 AWS WAF kullan\u0131m\u0131 \u00f6nerilir. API anahtarlar\u0131 tek ba\u015f\u0131na yeterli g\u00fcvenlik sa\u011flamaz, ancak kullan\u0131m takibi ve belirli planlar i\u00e7in iyi bir eklenti olabilir.<\/p>\n<\/li>\n<li>\n            <strong>API Gateway \u00f6nbellekleme ne zaman kullan\u0131lmamal\u0131d\u0131r?<\/strong><\/p>\n<p>\u00d6nbellekleme, verilerin s\u0131k de\u011fi\u015fti\u011fi veya her istekte benzersiz ve g\u00fcncel veriye ihtiya\u00e7 duyulan senaryolarda kullan\u0131lmamal\u0131d\u0131r. \u00d6rne\u011fin, ger\u00e7ek zamanl\u0131 stok bilgileri veya hassas kullan\u0131c\u0131 profili verileri gibi s\u0131k g\u00fcncellenen veya ki\u015fiselle\u015ftirilmi\u015f veriler i\u00e7in \u00f6nbellekleme yerine do\u011frudan arka u\u00e7 eri\u015fimi tercih edilmelidir. Ayr\u0131ca, yetkilendirme yan\u0131tlar\u0131n\u0131 \u00f6nbelle\u011fe al\u0131rken dikkatli olunmal\u0131d\u0131r, \u00e7\u00fcnk\u00fc yetki de\u011fi\u015fiklikleri \u00f6nbellekteki eski politikalar\u0131n kullan\u0131lmas\u0131na neden olabilir.<\/p>\n<\/li>\n<li>\n            <strong>API Gateway ve Lambda fonksiyonlar\u0131ndaki hatalar\u0131 nas\u0131l h\u0131zl\u0131ca tespit edebilirim?<\/strong><\/p>\n<p>H\u0131zl\u0131 tespit i\u00e7in CloudWatch Logs ve Metriklerini etkinle\u015ftirip izlemek temeldir. CloudWatch Alarmlar\u0131 kurarak belirli hata oranlar\u0131 veya gecikmeler a\u015f\u0131ld\u0131\u011f\u0131nda bildirim alabilirsiniz. AWS X-Ray, da\u011f\u0131t\u0131lm\u0131\u015f sistemlerde isteklerin izini s\u00fcrerek hatan\u0131n tam olarak nerede meydana geldi\u011fini g\u00f6rsel olarak anlaman\u0131za yard\u0131mc\u0131 olur. Lambda fonksiyonlar\u0131n\u0131zda yap\u0131land\u0131r\u0131lm\u0131\u015f loglama (JSON format\u0131nda loglar) kullanarak CloudWatch Logs Insights ile loglar\u0131 verimli bir \u015fekilde sorgulayabilirsiniz.<\/p>\n<\/li>\n<\/ul>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Amazon API Gateway&#8217;i yaln\u0131zca bir proxy&#8217;den fazlas\u0131 olarak nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ke\u015ffedin. G\u00fcvenli, izlenebilir ve \u00f6l\u00e7eklenebilir sunucusuz API&#8217;ler in\u015fa&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":[1],"tags":[],"class_list":{"0":"post-31106","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","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>API Gateway ile G\u00fcvenli ve G\u00f6zlemlenebilir Sunucusuz API&#039;ler<\/title>\n<meta name=\"description\" content=\"Amazon API Gateway&#039;i yaln\u0131zca bir proxy&#039;den fazlas\u0131 olarak nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ke\u015ffedin. G\u00fcvenli, izlenebilir ve \u00f6l\u00e7eklenebilir sunucusuz API&#039;ler in\u015fa etmenin inceliklerini \u00f6\u011frenin. Bu kapsaml\u0131 rehber, temelden ileri d\u00fczeye kadar her seviyeden geli\u015ftirici i\u00e7in pratik bilgiler sunuyor.\" \/>\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\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"API Gateway ile G\u00fcvenli ve G\u00f6zlemlenebilir Sunucusuz API&#039;ler\" \/>\n<meta property=\"og:description\" content=\"Amazon API Gateway&#039;i yaln\u0131zca bir proxy&#039;den fazlas\u0131 olarak nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ke\u015ffedin. G\u00fcvenli, izlenebilir ve \u00f6l\u00e7eklenebilir sunucusuz API&#039;ler in\u015fa etmenin inceliklerini \u00f6\u011frenin. Bu kapsaml\u0131 rehber, temelden ileri d\u00fczeye kadar her seviyeden geli\u015ftirici i\u00e7in pratik bilgiler sunuyor.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-05T18:31:52+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=\"25 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"API Gateway ile G\u00fcvenli ve G\u00f6zlemlenebilir Sunucusuz API&#8217;ler\",\"datePublished\":\"2025-10-05T18:31:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/\"},\"wordCount\":4674,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/\",\"name\":\"API Gateway ile G\u00fcvenli ve G\u00f6zlemlenebilir Sunucusuz API'ler\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-05T18:31:52+00:00\",\"description\":\"Amazon API Gateway'i yaln\u0131zca bir proxy'den fazlas\u0131 olarak nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ke\u015ffedin. G\u00fcvenli, izlenebilir ve \u00f6l\u00e7eklenebilir sunucusuz API'ler in\u015fa etmenin inceliklerini \u00f6\u011frenin. Bu kapsaml\u0131 rehber, temelden ileri d\u00fczeye kadar her seviyeden geli\u015ftirici i\u00e7in pratik bilgiler sunuyor.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API Gateway ile G\u00fcvenli ve G\u00f6zlemlenebilir Sunucusuz API&#8217;ler\"}]},{\"@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":"API Gateway ile G\u00fcvenli ve G\u00f6zlemlenebilir Sunucusuz API'ler","description":"Amazon API Gateway'i yaln\u0131zca bir proxy'den fazlas\u0131 olarak nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ke\u015ffedin. G\u00fcvenli, izlenebilir ve \u00f6l\u00e7eklenebilir sunucusuz API'ler in\u015fa etmenin inceliklerini \u00f6\u011frenin. Bu kapsaml\u0131 rehber, temelden ileri d\u00fczeye kadar her seviyeden geli\u015ftirici i\u00e7in pratik bilgiler sunuyor.","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\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/","og_locale":"tr_TR","og_type":"article","og_title":"API Gateway ile G\u00fcvenli ve G\u00f6zlemlenebilir Sunucusuz API'ler","og_description":"Amazon API Gateway'i yaln\u0131zca bir proxy'den fazlas\u0131 olarak nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ke\u015ffedin. G\u00fcvenli, izlenebilir ve \u00f6l\u00e7eklenebilir sunucusuz API'ler in\u015fa etmenin inceliklerini \u00f6\u011frenin. Bu kapsaml\u0131 rehber, temelden ileri d\u00fczeye kadar her seviyeden geli\u015ftirici i\u00e7in pratik bilgiler sunuyor.","og_url":"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-05T18:31:52+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"25 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"API Gateway ile G\u00fcvenli ve G\u00f6zlemlenebilir Sunucusuz API&#8217;ler","datePublished":"2025-10-05T18:31:52+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/"},"wordCount":4674,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/","url":"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/","name":"API Gateway ile G\u00fcvenli ve G\u00f6zlemlenebilir Sunucusuz API'ler","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-05T18:31:52+00:00","description":"Amazon API Gateway'i yaln\u0131zca bir proxy'den fazlas\u0131 olarak nas\u0131l kullanaca\u011f\u0131n\u0131z\u0131 ke\u015ffedin. G\u00fcvenli, izlenebilir ve \u00f6l\u00e7eklenebilir sunucusuz API'ler in\u015fa etmenin inceliklerini \u00f6\u011frenin. Bu kapsaml\u0131 rehber, temelden ileri d\u00fczeye kadar her seviyeden geli\u015ftirici i\u00e7in pratik bilgiler sunuyor.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/api-gateway-ile-guvenli-ve-gozlemlenebilir-sunucusuz-apiler\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"API Gateway ile G\u00fcvenli ve G\u00f6zlemlenebilir Sunucusuz API&#8217;ler"}]},{"@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\/31106","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=31106"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31106\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31106"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31106"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}