๐Lambda - Api Gateway
Lambda, Sunucu yรถnetmek zahmetine girmeden, kod รงalฤฑลtฤฑrmanฤฑza izin verir. Yalnฤฑzca tรผkettiฤiniz hesaplama zamanฤฑ iรงin รถdeme yapฤฑlฤฑr. Kod รงalฤฑลmadฤฑฤฤฑnda รผcret alฤฑnmaz.
FAAS (serverless) : Developer 'lar iรงin yarattฤฑklarฤฑ kod bloฤunu, bloklarฤฑnฤฑ atarak รงeลitli yรถntemlerle bu kodlarฤฑ tetikleleterek, kodun รงalฤฑลmasฤฑ saฤlanarak, sonucun alฤฑndฤฑฤฤฑ bir konsept. Geliลtiriciler iรงin bir รงok sorunu ortadan kaldฤฑrฤฑr. Ortamda bir sunucu olmadฤฑฤฤฑndan, sunucu yรถnetim problemi kalmฤฑyor. Ayrฤฑca kod รงalฤฑลฤฑp sonuรง alฤฑndฤฑฤฤฑnda faturalandฤฑrma yapฤฑlฤฑyor. Kullandฤฑฤฤฑmฤฑz kadar รถdeme yapฤฑyoruz. Servis arka planda, ihtiyaca gรถre bรผyรผyebiliyor. Yani EC2 'da autoscaling ile saฤladฤฑฤฤฑmฤฑz durumu burada otomatik olarak saฤlฤฑyoruz.
Kullanฤฑcฤฑlar bir sunucu yรถnetmeden, uygulama geliลtirmelerine ve iลlevleri daฤฤฑtmalarฤฑna olanak saฤlayan ve iลlem verimliliฤini arttฤฑran bir bulut biliลim modelidir. FAAS(Function as a Service) temelindeki konsept serverless(sunucusuz) olarak bilinen konsepttir. Bu konsept tรผm biliลim alt yapฤฑsฤฑ bulut biliลim saฤlayฤฑcฤฑsฤฑ tarafฤฑndan yรถnetilir ve bizler sadece kod ile ilgileniriz. Kodun รงalฤฑลmasฤฑ ve sonucun gรถnderilmesi iรงin gereken tรผm alt yapฤฑ servis saฤlayฤฑcฤฑnฤฑn gรถrevidir.
Lambda, ile hemen hemen her tรผrlรผ uygulama ve ya arka uรง (backend) hizmeti iรงin kod รงalฤฑลtฤฑrabiliriz. Sadece kodumuzu yรผkleriz ve gerisini lambda'ya bฤฑrakฤฑrฤฑz. Kodumuzun diฤer AWS hizmetlerinden otomatik olarak tetikletmek ve ya doฤrudan her hangi bir web ve ya mobil uygulamadan รงaฤฤฑrmak iรงin ayarlayabiliriz. Python,Java,C#,NodeJS,Go dillerinde kodlarฤฑ รงalฤฑลtฤฑrarak bize iลlem sonucunu รงฤฑkaran AWS'nin FAAS servisidir.
Api Gateway, Ortamda birden fazla mikro servis bulunan ortamlarda tรผm bu servislere eriลimin, servislerin birbiriyle konuลmalarฤฑnฤฑn dฤฑล dรผnyadan diฤer uygulamalarฤฑn bu servise hizmetlerine eriลebilecek bir ortam oluลturulmasฤฑnฤฑ saฤlar. Tรผm bu karฤฑลฤฑk servislerin giriล noktasฤฑdฤฑr. Lambda ile mikro servisler hatta tek bir fonksiyon รงalฤฑลtฤฑran nano servisler yaratabiliriz. Ve bu servislere bir giriล noktasฤฑ Auth alt yapฤฑsฤฑ kurmamฤฑz gerekebilir. ฤฐลte bize bunu Api GW servisi saฤlฤฑyor.
Api Gateway, Geliลtiricilerin, her hangi bir รถlรงekte API oluลturmasฤฑnฤฑ,yayฤฑnlamasฤฑnฤฑ,sรผrdรผrmesini ve izlemesini ve gรผvenliฤini saฤlamasฤฑnฤฑ kolaylaลtฤฑran tamamen yรถnetilen servistir. AWS yรถnetim konusunda bir kaรง tฤฑklamayla Amazon Elastic Compute Cloud รผzerinde รงalฤฑลan iล yรผkleri AWS lambda รผzerinde รงalฤฑลan kod bloklarฤฑ ve ya herhangi bir web uygulmasฤฑ gibi arka uรง hizmetlere eriลmek iรงin รถn kapฤฑ olarak iลlev gรถren bir API oluลturulabilir.
Lambda Fonksiyonu oluลturmak,
Create Lambda function
Autor from scratch : Sฤฑfฤฑrdan kodu kendimiz mi yazฤฑp mฤฑ kullanacaฤฤฑz?
Use a blueprint : Blueprint kullanabiliriz. Blueprint aws 'nin hazฤฑrladฤฑฤฤฑ, hazฤฑr lambda fonksiyonlarฤฑdฤฑr.
Browse serverless app repository : Marketplace olarak dรผลรผnebiliriz. ฤฐnsanlar yazdฤฑklarฤฑ kodu buraya yรผkler. Biz buradan kullanabiliyoruz.
autor from scratch seรงeneฤi ile devam edebiliriz.
Function Name: Fonksiyon adฤฑ
Runtime : Kodumuz hangi dil'de yazฤฑldฤฑysa buradan seรงmeliyiz.
Permission : Bu fonksiyonu hangi permission (aws haklarฤฑyla) รงalฤฑลtฤฑrmak istediฤimizi soruyor.
Function code : Bu ekrana kodumuzu yapฤฑลtฤฑrabiliriz.
Policy Template : Hazฤฑr bir template'den permission seรงiyoruz.
Role Name giriyoruz.
Create Function
Dilersek bu kodu tetikletebiliriz, รถrneฤin s3'e dosya atฤฑldฤฑฤฤฑnda bu kodu รงalฤฑลtฤฑr vb. Dilersek manuel olarak รงalฤฑลtฤฑrabiliriz.
=> Test
=> Create new test event
=> Event Name
=> Diฤer ayarlar varsayฤฑlan kalabilir.
=> Save
=> Test
Bรถylelikle oluลturduฤumuz kodumuz รงalฤฑลmฤฑล olacak.
=> Basic Settings, kodumuzun รงalฤฑลmasฤฑ iรงin gerekli memory miktarฤฑnฤฑ seรงebiliriz.
=> Timeout : Kod รงalฤฑลฤฑrken kaรง saniye iรงerisinde timeout 'a dรผลsรผn. Uzun sonuรงlar รงฤฑkaran, fonksiyonlar iรงin gerekli timeout seรงeneฤini ayarlayabiliriz.
=> Execution Role : Daha รถnceden atadฤฑฤฤฑmฤฑz rolleri deฤiลtirebiliyoruz.
=> Network : Bir VPC iรงerisinden eriลilebilir hale getirebiliyoruz.
=> Debug - Error Handling : Loglarฤฑ SNS ve ya SQS e gรถnderebiliriz.
=> Concurrency : Kodun arka arkaya รงalฤฑลma limitini belirleyebiliriz.
Kodumuzu tetikletmek ve dฤฑล dรผnyadan eriลmek iรงin API GW servisine geรงiyoruz.
Api GW, rest-api yaratmamzฤฑ saฤlar. Bu servis sayesinde HTTP protokolรผ รผzerinden รงalฤฑลan API yaratabiliriz ve bu API yarattฤฑฤฤฑmฤฑz, mikro servislere baฤlayabiliriz. Ayrฤฑca lambda รผzerinde yarattฤฑฤฤฑmฤฑz birer mikro servis gรถrevi gรถrdรผฤรผnden yaratacaฤฤฑmฤฑz API bu fonksiyona baฤlanabilir.
API ile her /get isteฤi gรถnderildiฤinde bunun lambda servisinde az รถnceki oluลturduฤumuz fonksiyonu tetikletecek ลekilde ayarlayacaฤฤฑz. Ve sonucu geri dรถndรผreceฤiz.
Choose the Protocol : Hangi tip API yaratacaฤฤฑz?
Rest
Create New API : Yeni API oluลturabilir ve ya รถrnek bir API kullanabiliriz.
New API
Name : ilkapi
Endpoint : Regional (Lambda fonksiyonu bu region'da)
Create API
Resources => Actions : Fonksiyonumuzu tetikletmek iรงin metot yaratalฤฑm.
Create Method => Get => Okey
Bu metot รงaฤrฤฑldฤฑฤฤฑnda ne tetiklenecek?
Integration Type : Lambda Function
Lambda Region : Lamdayฤฑ oluลturduฤumuz region?
Lambda Function : Fonksiyonumuzun adฤฑ?
Use Default Timeout : Seรงili.
Bรถylelikle iลlemler tamamlandฤฑ.
Deploy API => Stage Name : Misal, " Prod " yazฤฑyoruz. ฤฐlk api yaratmฤฑล olduk.
Last updated