﻿
{"id":25987,"date":"2022-12-19T16:05:21","date_gmt":"2022-12-19T16:05:21","guid":{"rendered":"https:\/\/www.gencayyildiz.com\/blog\/?p=25987"},"modified":"2022-12-19T16:05:21","modified_gmt":"2022-12-19T16:05:21","slug":"net-7-aws-lambda-ile-serverless-computing","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/net-7-aws-lambda-ile-serverless-computing\/","title":{"rendered":".NET 7 &#8211; AWS Lambda \u0130le Serverless Computing"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Merhaba,<\/p>\n<p>Bu i\u00e7eri\u011fimizde .NET 7&#8217;de AWS Lambda ile serverless bir fonksiyonalite in\u015fa etmeyi ve deploy i\u015flemlerini inceliyor olaca\u011f\u0131z.<\/p>\n<h4>Serverless Applications Nedir?<\/h4>\n<p>G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerindeki en \u00e7a\u011fda\u015f yakla\u015f\u0131mlardan birisi uygulamalar\u0131n serverless mimariler \u00fczerinden tasarlanmas\u0131d\u0131r. Serverless; bir uygulamay\u0131 do\u011fru par\u00e7alara b\u00f6lerek, cloud \u00fczerinde \u00e7al\u0131\u015ft\u0131rma yakla\u015f\u0131m\u0131n\u0131 ifade eden terminolojik bir terimdir. Serverless mimarisi, k\u00fc\u00e7\u00fck \u00f6l\u00e7ekli ve i\u015f y\u00fck\u00fc pek fazla d\u0131\u015f sistemlere dayal\u0131 olmayan operasyon s\u00fcre\u00e7lerinde direkt ilgili i\u015fle ilgilenebilecek k\u00fc\u00e7\u00fck fonksiyonaliteleri tarif etmektedir.<\/p>\n<p>Serverless kelimesi T\u00fcrk\u00e7e&#8217;ye -sunucusuz- olarak terc\u00fcme edildi\u011fi i\u00e7in yan\u0131lt\u0131c\u0131 bir isme sahip olabilir. Esas\u0131nda bir sunucu makinan\u0131n olmamas\u0131ndan ziyade sunucunun ve sunucu ihtiya\u00e7lar\u0131n\u0131n geli\u015ftirici ekibinden soyutland\u0131\u011f\u0131n\u0131, t\u00fcm sorumlulu\u011funda cloud provider&#8217;lar taraf\u0131ndan \u00fcstlenildi\u011fini ve geli\u015ftirici ekibin sadece i\u015fe ve o i\u015fi ger\u00e7ekle\u015ftirilecek kodun in\u015fas\u0131na odaklanmas\u0131 gerekti\u011fini ifade etmektedir. B\u00f6ylece uygulama a\u00e7\u0131s\u0131ndan geli\u015ftiricileri; infrastructure(altyap\u0131) olsun, scaling(\u00f6l\u00e7eklendirme) olsun veyahut configuring(yap\u0131land\u0131rma) gibi konular olsun endi\u015felerden kurtarmaktad\u0131r.<\/p>\n<p>Serverless mimarisi, pe\u015fin bir \u00f6demeden ziyade kulland\u0131k\u00e7a \u00f6deme modeliyle \u00e7al\u0131\u015fmaktad\u0131r. Yani uygulaman\u0131z hizmetine devam ederken uygun maliyet a\u00e7\u0131s\u0131ndan yaln\u0131zca ilgili kod fiilen kullan\u0131ld\u0131\u011f\u0131 anlarda faturaland\u0131r\u0131lacakt\u0131r.<\/p>\n<h5>Uygulama S\u00fcre\u00e7lerinde Serverless Bir Yakla\u015f\u0131m Neden D\u00fc\u015f\u00fcn\u00fclmelidir?<\/h5>\n<p>Uygulama s\u00fcre\u00e7lerinde serverless teknolojilerinden destek almam\u0131z\u0131n tabi ki de bir\u00e7ok nedeni olabilir. Bu nedenlerden baz\u0131lar\u0131n\u0131 birka\u00e7 c\u00fcmleyle s\u0131ralarsak e\u011fer;<\/p>\n<ul>\n<li><strong><em>Haz\u0131r Kullan\u0131labilirlik<\/em><\/strong><br \/>\nServerless yakla\u015f\u0131m\u0131nda uygulama i\u00e7in gerekli olan hizmetler built-in olarak bulunaca\u011f\u0131ndan dolay\u0131 bu yetenekler i\u00e7in ekstradan kaynak ayr\u0131lmas\u0131na ve enerji tasarrufunda bulunulmas\u0131na gerek bulunmamaktad\u0131r.<\/li>\n<li><strong><em>Otomatik \u00d6l\u00e7eklenebilirlik<\/em><\/strong><br \/>\nUygulamalar gerekti\u011fi taktirde otomatik olarak \u00f6l\u00e7eklendirilebilecek bir altyap\u0131da yap\u0131land\u0131r\u0131lmaktad\u0131r.\n<\/li>\n<li><strong>Minimize Edilmi\u015f Maliyet<\/strong><br \/>\nKulland\u0131k\u00e7a \u00f6de y\u00f6ntemi sayesinde yaz\u0131l\u0131m s\u00fcrecindeki maliyetler olduk\u00e7a t\u00f6rp\u00fclemektedir.\n<\/li>\n<\/ul>\n<p>Bu nedenler ister istemez ihtiya\u00e7 noktalar\u0131nda serverless yakla\u015f\u0131m\u0131n d\u00fc\u015f\u00fcn\u00fclmesi i\u00e7in hakl\u0131 gerek\u00e7eler olabilmektedir.<\/p>\n<h4>AWS Lambda Nedir?<\/h4>\n<p>AWS Lambda, AWS taraf\u0131ndan sa\u011flanan serverless bir bilgi i\u015flem hizmetidir. Herhangi bir sunucu gereksinimine ihtiya\u00e7 duymaks\u0131z\u0131n fonksiyonel kodlar\u0131n\u0131z\u0131 y\u00fcr\u00fctmenize olanak tan\u0131maktad\u0131r. Bunun i\u00e7in tek yap\u0131lmas\u0131 gereken <a href=\"https:\/\/docs.aws.amazon.com\/lambda\/latest\/dg\/lambda-runtimes.html\" rel=\"noopener\" target=\"_blank\">AWS taraf\u0131ndan desteklenen diller<\/a>den biriyle ilgili fonksiyonu kodlamakt\u0131r.<\/p>\n<blockquote><p><em>AWS Lambda \u00fczerinde yazd\u0131\u011f\u0131n\u0131z fonksiyonlar biryandan da <u>Lambda Functions<\/u> olarak nitelendirilmektedir. <\/em><\/p><\/blockquote>\n<p>AWS Lambda esas olarak geli\u015ftirilen fonksiyon \u00e7a\u011fr\u0131ld\u0131\u011f\u0131nda \u00e7al\u0131\u015ft\u0131rma ve gerekti\u011fi taktirde otomatik olarak \u00f6l\u00e7eklendirme sorumluluklar\u0131n\u0131 \u00fcstlenmektedir. Tabi ki de Lambda Function&#8217;lar da farkl\u0131 AWS Service&#8217;leriyle olan entegrasyonlar sayesinde de istifade edilebilmektedir. Yani isterseniz <a href=\"https:\/\/www.gencayyildiz.com\/blog\/asp-net-coreda-aws-dynamodb-ile-basit-crud-islemleri\/\" rel=\"noopener\" target=\"_blank\">DynamoDB<\/a> ile ba\u011flant\u0131 kurup veritaban\u0131 i\u015flemleri ger\u00e7ekle\u015ftirebilir yahut <a href=\"https:\/\/www.gencayyildiz.com\/blog\/asp-net-core-aws-s3-ile-dosya-islemleri-gerceklestirme-upload-download-delete-files\/\" rel=\"noopener\" target=\"_blank\">AWS S3<\/a> \u00fczerinden dosya i\u015flemleri y\u00fcr\u00fctebilirsiniz.<\/p>\n<blockquote><p><em>Genellikle event-driven operasyonlar i\u00e7in Lambda Function&#8217;lar tercih edilebilmektedir.<\/em><\/p><\/blockquote>\n<h4>AWS IAM Arac\u0131l\u0131\u011f\u0131yla Kullan\u0131c\u0131 Olu\u015fturma ve Access Key Generate Etme<\/h4>\n<p>AWS Lambda&#8217;y\u0131 \u00f6rneklendirebilmek i\u00e7in geli\u015ftirece\u011fimiz uygulamaya ba\u015flamadan \u00f6nce, local makinemizde ilgili servise eri\u015fim anahtar\u0131 olan access key&#8217;i i\u00e7erecek bir AWS Profile olu\u015fturulmas\u0131 gerekmektedir. Bu i\u015flem i\u00e7in tabi ki de <a href=\"https:\/\/docs.aws.amazon.com\/cli\/latest\/userguide\/getting-started-install.html\" rel=\"noopener\" target=\"_blank\">AWS CLI<\/a>&#8216;a ihtiyac\u0131m\u0131z olacakt\u0131r.<\/p>\n<p>\u00d6ncelikle AWS IAM arac\u0131l\u0131\u011f\u0131yla gerekli yetkilendirmelere sahip olan bir kullan\u0131c\u0131 olu\u015fturarak ba\u015flayal\u0131m. Bunun i\u00e7in AWS Console \u00fczerinden a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde oldu\u011fu gibi IAM servisine gidelim ve gerekli kullan\u0131c\u0131 olu\u015fturma s\u00fcrecini ba\u015flatal\u0131m.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing.gif\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"600\" height=\"352\" class=\"aligncenter size-full wp-image-25994\" \/><\/a>Misal olarak bu i\u015flem i\u00e7in &#8216;lambda.example&#8217; ad\u0131nda bir kullan\u0131c\u0131 olu\u015ftural\u0131m.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"805\" height=\"335\" class=\"aligncenter size-full wp-image-25996\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing.png 805w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-300x125.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-768x320.png 768w\" sizes=\"auto, (max-width: 805px) 100vw, 805px\" \/><\/a>Burada <strong><em>Access key &#8211; Programmatic access<\/em><\/strong> kutucu\u011funu i\u015faretlemeyi unutmay\u0131n\u0131z.<\/p>\n<p>Ard\u0131ndan bu kullan\u0131c\u0131ya a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde oldu\u011fu gibi <strong><em>Attach existing policies directly<\/em><\/strong> sekmesi \u00fczerinden &#8216;AdministratorAccess&#8217; politikas\u0131n\u0131 verelim.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-1.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-1.gif\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"800\" height=\"698\" class=\"aligncenter size-full wp-image-25997\" \/><\/a>Sonras\u0131nda ise klasik T\u00fcrk yard\u0131rmas\u0131yla &#8216;Next, Next la he Next&#8217; diyerek &#8216;Create User&#8217; butonuna kadar gelelim ve kullan\u0131c\u0131 olu\u015ftural\u0131m.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-1.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"770\" height=\"336\" class=\"aligncenter size-full wp-image-25998\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-1.png 770w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-1-300x131.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-1-768x335.png 768w\" sizes=\"auto, (max-width: 770px) 100vw, 770px\" \/><\/a>Netice olarak bu kullan\u0131c\u0131ya dair bizlere sunulan access ve secret key&#8217;leri bir yere not ederek sayfay\u0131 kapatal\u0131m.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-2.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-2.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"844\" height=\"194\" class=\"aligncenter size-full wp-image-25999\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-2.png 844w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-2-300x69.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-2-768x177.png 768w\" sizes=\"auto, (max-width: 844px) 100vw, 844px\" \/><\/a><\/p>\n<h4>Profil Yap\u0131land\u0131rmas\u0131n\u0131 Sa\u011flama<\/h4>\n<p>Edindi\u011fimiz access ve secret key&#8217;leri uygulama yap\u0131land\u0131rma s\u00fcrecinde rahatl\u0131kla kullanabilmek i\u00e7in <em>AWS Local Configuration Profile<\/em> arac\u0131l\u0131\u011f\u0131yla local bilgisayar\u0131m\u0131za kaydedelim.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-3.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-3.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"634\" height=\"96\" class=\"aligncenter size-full wp-image-26000\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-3.png 634w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-3-300x45.png 300w\" sizes=\"auto, (max-width: 634px) 100vw, 634px\" \/><\/a><\/p>\n<h4>.NET 7 \u0130le AWS Lambda Entegrasyonu &#8211; AWS Toolkit Extension<\/h4>\n<p>Art\u0131k .NET 7 ile AWS Lambda operasyonlar\u0131 i\u00e7in gerekli olan t\u00fcm altyap\u0131 \u00e7al\u0131\u015fmas\u0131n\u0131 tamamland\u0131\u011f\u0131m\u0131za g\u00f6re <em>AWS Toolkit Extension<\/em> ile AWS Lambda entegrasyonunu ger\u00e7ekle\u015ftirebiliriz.<\/p>\n<p><em>AWS Toolkit Extension<\/em>, Visual Studio&#8217;da AWS Project Template&#8217;lerini y\u00fcklememizi sa\u011flayan bir eklentidir. Bu eklentiyi <em>Manage Extensions<\/em> \u00fczerinden a\u015fa\u011f\u0131daki gibi aratarak kurabilirsiniz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-4.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-4.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"935\" height=\"241\" class=\"aligncenter size-full wp-image-26003\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-4.png 935w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-4-300x77.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-4-768x198.png 768w\" sizes=\"auto, (max-width: 935px) 100vw, 935px\" \/><\/a>\u0130lgili toolkit&#8217;i y\u00fckledikten sonra Visual Studio&#8217;da AWS Project Template&#8217;lerini a\u015fa\u011f\u0131daki gibi g\u00f6rebilirsiniz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-5.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-5.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"553\" height=\"458\" class=\"aligncenter size-full wp-image-26004\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-5.png 553w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-5-300x248.png 300w\" sizes=\"auto, (max-width: 553px) 100vw, 553px\" \/><\/a><\/p>\n<h4>.NET CLI \u00dczerinden AWS Project Template&#8217;lerini Y\u00fckleme<\/h4>\n<p>Ayr\u0131ca, AWS Project Template&#8217;lerini .NET CLI \u00fczerinden de a\u015fa\u011f\u0131daki talimat e\u015fli\u011finde y\u00fckleyebilirsiniz.<\/p>\n<div style=\"text-align:center;\"><code style=\"color:red;\">dotnet new -i Amazon.Lambda.Templates<\/code><\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-6.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-6.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"1087\" height=\"749\" class=\"aligncenter size-full wp-image-26005\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-6.png 1087w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-6-300x207.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-6-1024x706.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-6-768x529.png 768w\" sizes=\"auto, (max-width: 1087px) 100vw, 1087px\" \/><\/a><\/p>\n<p>AWS taraf\u0131 i\u00e7in bunca tantana yeter \ud83d\ude42 Art\u0131k programatik olarak AWS Lambda olu\u015fturmaya ve kodlama s\u00fcrecindeki mimarisini incelemeye ba\u015flayal\u0131m derim.<\/p>\n<h4>.NET 7 \u0130le AWS Lambda Projesi Olu\u015fturma<\/h4>\n<p>.NET 7 ile AWS Lambda uygulamas\u0131 geli\u015ftirebilmek i\u00e7in Visual Studio \u00fczerinden <em>AWS Lambda Project (.NET Core &#8211; C#)<\/em> template&#8217;in de bir proje olu\u015fturulmas\u0131 gerekmektedir.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-7.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-7.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"533\" height=\"401\" class=\"aligncenter size-full wp-image-26007\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-7.png 533w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-7-300x226.png 300w\" sizes=\"auto, (max-width: 533px) 100vw, 533px\" \/><\/a>Tabi bu projeyi olu\u015ftururken Visual Studio bizlerden yap\u0131lacak i\u015fin uygunlu\u011funa g\u00f6re bir taslak se\u00e7memizi isteyecektir. Kafalar\u0131 \u00e7ok buland\u0131rmamak i\u00e7in bo\u015f taslak(Empty Function) \u00fczerinden ilerleyelim.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-8.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-8.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"828\" height=\"545\" class=\"aligncenter size-full wp-image-26008\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-8.png 828w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-8-300x197.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-8-768x506.png 768w\" sizes=\"auto, (max-width: 828px) 100vw, 828px\" \/><\/a><\/p>\n<h4>.NET CLI \u0130le AWS Lambda Projesi Olu\u015fturma<\/h4>\n<p>T\u00fcm bunlar\u0131n d\u0131\u015f\u0131nda .NET CLI&#8217;y\u0131 kullanarak a\u015fa\u011f\u0131daki talimat e\u015fli\u011finde &#8216;Empty Function&#8217; projesi olu\u015fturulabilmektedir.<\/p>\n<div style=\"text-align:center;\"><code style=\"color:red;\">dotnet new lambda.EmptyFunction --name AWS.Lambda.Example --profile lambda-example-profile<\/code><\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-9.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-9.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"1068\" height=\"45\" class=\"aligncenter size-full wp-image-26010\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-9.png 1068w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-9-300x13.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-9-1024x43.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-9-768x32.png 768w\" sizes=\"auto, (max-width: 1068px) 100vw, 1068px\" \/><\/a><\/p>\n<h4>AWS Lambda Proje Yap\u0131s\u0131n\u0131 \u0130nceleyelim<\/h4>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-10.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-10.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"283\" height=\"135\" class=\"alignleft size-full wp-image-26012\" \/><\/a>Bir AWS Lambda projesinin yap\u0131land\u0131rma<em style=\"font-size:12px;\">(aws-lambda-tools-defaults.json)<\/em> ve function<em style=\"font-size:12px;\">(Function.cs)<\/em> dosyas\u0131 olmak \u00fczere iki ana bile\u015feni bulunmaktad\u0131r.<\/p>\n<p>Yap\u0131land\u0131rma<em style=\"font-size:12px;\">(aws-lambda-tools-defaults.json)<\/em> dosyas\u0131nda; profil ayr\u0131nt\u0131lar\u0131, b\u00f6lge(region) vs. gibi bilgiler bulunmaktad\u0131r.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n{\r\n  &quot;Information&quot;: &#x5B;\r\n    &quot;This file provides default values for the deployment wizard inside Visual Studio and the AWS Lambda commands added to the .NET Core CLI.&quot;,\r\n    &quot;To learn more about the Lambda commands with the .NET Core CLI execute the following command at the command line in the project root directory.&quot;,\r\n    &quot;dotnet lambda help&quot;,\r\n    &quot;All the command line options for the Lambda command can be specified in this file.&quot;\r\n  ],\r\n  &quot;profile&quot;: &quot;lambda-example-profile&quot;,\r\n  &quot;region&quot;: &quot;ap-south-1&quot;,\r\n  &quot;configuration&quot;: &quot;Release&quot;,\r\n  &quot;function-architecture&quot;: &quot;x86_64&quot;,\r\n  &quot;function-runtime&quot;: &quot;dotnet6&quot;,\r\n  &quot;function-memory-size&quot;: 256,\r\n  &quot;function-timeout&quot;: 30,\r\n  &quot;function-handler&quot;: &quot;AWS.Lambda.Example::AWS.Lambda.Example.Function::FunctionHandler&quot;\r\n}\r\n<\/pre>\n<\/div>\n<p>Burada tabi ki de &#8216;profile&#8217; alan\u0131n\u0131n \u00f6nceki sat\u0131rlarda olu\u015fturdu\u011fumuz AWS Profile ile e\u015fle\u015fecek \u015fekilde de\u011fi\u015ftirildi\u011finden emin olmal\u0131s\u0131n\u0131z.<\/p>\n<p>Function<em style=\"font-size:12px;\">(Function.cs)<\/em> dosyas\u0131nda ise;<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nusing Amazon.Lambda.Core;\r\n\r\n\/\/ Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class.\r\n&#x5B;assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]\r\n\r\nnamespace AWS.Lambda.Example;\r\n\r\npublic class Function\r\n{\r\n    \r\n    \/\/\/ &lt;summary&gt;\r\n    \/\/\/ A simple function that takes a string and does a ToUpper\r\n    \/\/\/ &lt;\/summary&gt;\r\n    \/\/\/ &lt;param name=&quot;input&quot;&gt;&lt;\/param&gt;\r\n    \/\/\/ &lt;param name=&quot;context&quot;&gt;&lt;\/param&gt;\r\n    \/\/\/ &lt;returns&gt;&lt;\/returns&gt;\r\n    public string FunctionHandler(string input, ILambdaContext context)\r\n    {\r\n        return input.ToUpper();\r\n    }\r\n}\r\n<\/pre>\n<\/div>\n<p>&#8216;Function&#8217; class&#8217;\u0131 i\u00e7erisinde &#8216;FunctionHandler&#8217; isimli basit bir metot g\u00f6rmekteyiz. Bu metot ad\u0131n\u0131n yap\u0131land\u0131rma dosyas\u0131ndaki &#8220;function-handler&#8221; alan\u0131nda belirtildi\u011fine dikkatinizi \u00e7ekerim.<\/p>\n<p>\u015eimdi gelin, Visual Studio 2022 \u00fczerinden local makine \u00fczerinden bu function&#8217;\u0131n nas\u0131l debug edilece\u011fini inceleyelim.<\/p>\n<h4>AWS Lambda Projesi Nas\u0131l Debug Edilir?<\/h4>\n<p>&#8216;AWS Lambda Project&#8217; template&#8217;in de olu\u015fturulan projenin i\u00e7eri\u011fine dikkat ederseniz &#8216;Properties&#8217; i\u00e7erisinde &#8216;launchSettings.json&#8217; dosyas\u0131 mevcuttur. Bu dosya detay\u0131na g\u00f6z atarsan\u0131z e\u011fer i\u00e7erisinde <em>Mock Lambda Test Tool<\/em> ad\u0131nda bir profil olu\u015fturulmu\u015ftur.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n{\r\n  &quot;profiles&quot;: {\r\n    &quot;Mock Lambda Test Tool&quot;: {\r\n      &quot;commandName&quot;: &quot;Executable&quot;,\r\n      &quot;commandLineArgs&quot;: &quot;--port 5050&quot;,\r\n      &quot;workingDirectory&quot;: &quot;.\\\\bin\\\\$(Configuration)\\\\net6.0&quot;,\r\n      &quot;executablePath&quot;: &quot;%USERPROFILE%\\\\.dotnet\\\\tools\\\\dotnet-lambda-test-tool-6.0.exe&quot;\r\n    }\r\n  }\r\n}\r\n<\/pre>\n<\/div>\n<p>Bu profil, geli\u015ftirilen function kodunun AWS&#8217;ye deploy edilmesinden \u00f6nce local olarak debug edilmesine yard\u0131mc\u0131 olmaktad\u0131r.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-11.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-11.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"232\" height=\"93\" class=\"alignleft size-full wp-image-26014\" \/><\/a>Debug i\u015flemini ba\u015flatabilmek i\u00e7in Visual Studio \u00fczerinden ilgili profilde uygulaman\u0131n aya\u011fa kald\u0131r\u0131lmas\u0131 yeterli olacakt\u0131r. Bu i\u015flemden sonra <a href=\"http:\/\/localhost:5050\/\" rel=\"noopener\" target=\"_blank\">http:\/\/localhost:5050<\/a> adresinde test arac\u0131n\u0131n a\u00e7\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6rebilece\u011fiz.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-12.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-12.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"1892\" height=\"1030\" class=\"aligncenter size-full wp-image-26015\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-12.png 1892w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-12-300x163.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-12-1024x557.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-12-768x418.png 768w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-12-1536x836.png 1536w\" sizes=\"auto, (max-width: 1892px) 100vw, 1892px\" \/><\/a>Yukar\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnden test arac\u0131n\u0131n ald\u0131\u011f\u0131 parametreleri incelerseniz e\u011fer &#8216;Config File&#8217;, &#8216;Function&#8217;, &#8216;AWS Credential Profile&#8217; ve &#8216;AWS Region&#8217; bilgilerini talep etmektedir.<br \/>\n<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-13.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-13.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"134\" height=\"73\" class=\"alignleft size-full wp-image-26016\" \/><\/a>Bu bilgileri do\u011fru bir \u015fekilde girdikten sonra function&#8217;\u0131n alaca\u011f\u0131 parametre de\u011ferini de yandaki g\u00f6rseldeki gibi &#8216;Function Input&#8217; k\u0131sm\u0131na girmeniz ve ard\u0131ndan &#8216;Execute Function&#8217; butonuna t\u0131klaman\u0131z yeterlidir. Bu i\u015flem neticesinde test arac\u0131n\u0131n a\u015fa\u011f\u0131s\u0131ndaki &#8216;Response&#8217; alan\u0131nda girilen de\u011ferin b\u00fcy\u00fck harflerle yaz\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-14.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-14.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"123\" height=\"96\" class=\"aligncenter size-full wp-image-26019\" \/><\/a>\u015eimdilik, bu Lambda Funciton&#8217;\u0131 herhangi bir ekstradan i\u015flem yapmaks\u0131z\u0131n en sade haliyle AWS&#8217;ye deploy etmeyi ele alal\u0131m.<\/p>\n<h4>AWS Lambda Function&#8217;\u0131 AWS&#8217;ye Deploy Etme<\/h4>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-15.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-15.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"213\" height=\"284\" class=\"alignleft size-full wp-image-26020\" \/><\/a>AWS Lambda Function&#8217;\u0131 deploy etmek olduk\u00e7a basit. Bunun i\u00e7in &#8216;Solution Explorer&#8217; penceresinden ilgili projeye sa\u011f t\u0131klayarak &#8216;Publish to AWS Lambda&#8230;&#8217; sekmesine t\u0131klaman\u0131z yeterlidir.<\/p>\n<blockquote><p>Bu arada \u015funu s\u00f6ylemeden ge\u00e7emeyece\u011fim ki, fark\u0131ndaysan\u0131z <em>AWS Toolkit Extension<\/em> AWS s\u00fcreci i\u00e7in gerekli t\u00fcm altyap\u0131y\u0131 Visual Studio IDE&#8217;sine entegre etmi\u015f bulunmakta ve t\u00fcm i\u015flerimizi y\u00fcr\u00fctebilece\u011fimiz yetenekleri kazand\u0131rmaktad\u0131r.<\/p><\/blockquote>\n<p>Sonraki ad\u0131mda ise a\u00e7\u0131lan pencerede a\u015fa\u011f\u0131daki g\u00f6rseldeki gibi &#8216;AWS Credentials&#8217; ve &#8216;Region&#8217; bilgilerini do\u011fru \u015fekilde se\u00e7iniz ve &#8216;Function Name&#8217; bilgisini giriniz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-16.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-16.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"830\" height=\"548\" class=\"aligncenter size-full wp-image-26022\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-16.png 830w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-16-300x198.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-16-768x507.png 768w\" sizes=\"auto, (max-width: 830px) 100vw, 830px\" \/><\/a>Devam\u0131nda ise S3 gibi di\u011fer AWS Service&#8217;lerine eri\u015fim sa\u011flayacak olan bu AWS Lambda fonksiyonunun kimlik bilgilerini sa\u011flamak i\u00e7in <em>AWS Lambda Basic Execution Role<\/em>&#8216;\u00fcn\u00fc se\u00e7erek IAM rol\u00fc belirleyiniz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-17.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-17.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"821\" height=\"544\" class=\"aligncenter size-full wp-image-26024\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-17.png 821w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-17-300x199.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-17-768x509.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><\/a>Bu ad\u0131mdan sonra &#8216;Upload&#8217; butonuna t\u0131klayarak Visual Studio \u00fczerinden AWS Lambda projesinin AWS&#8217;de gerekli kaynaklar\u0131 olu\u015fturmas\u0131n\u0131 ba\u015flatabilirsiniz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-18.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-18.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"827\" height=\"545\" class=\"aligncenter size-full wp-image-26026\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-18.png 827w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-18-300x198.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-18-768x506.png 768w\" sizes=\"auto, (max-width: 827px) 100vw, 827px\" \/><\/a>Bu i\u015flem saniyeler zarf\u0131nda olduk\u00e7a k\u0131sa s\u00fcrecektir. Tabi y\u00fckleme s\u00fcrecinde ekran\u0131n alt\u0131ndaki <em style=\"font-size:12px;\">Open Lambda Function view after upload complete.<\/em> ve <em style=\"font-size:12px;\">Automatically close wizard on successfull completion.<\/em> kutucuklar\u0131n\u0131n se\u00e7ili oldu\u011fundan emin olman\u0131zda fayda vard\u0131r. B\u00f6ylece upload edilecek fonksiyonun Visual Studio \u00fczerinden test edilmesi m\u00fcmk\u00fcn olacakt\u0131r.<\/p>\n<h4>Test Edelim<\/h4>\n<p>Upload i\u015flemi bittikten sonra Visual Studio do\u011frudan local makinemiz \u00fczerinden AWS Lambda Function&#8217;\u0131 test edebilmemiz i\u00e7in bir tool a\u00e7acakt\u0131r. A\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc incelerseniz e\u011fer &#8220;Merhaba :)&#8221; olarak girilen de\u011feri ilgili function b\u00fcy\u00fcterek bizlere response etmektedir.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-19.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-19.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"1447\" height=\"633\" class=\"aligncenter size-full wp-image-26028\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-19.png 1447w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-19-300x131.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-19-1024x448.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-19-768x336.png 768w\" sizes=\"auto, (max-width: 1447px) 100vw, 1447px\" \/><\/a><\/p>\n<blockquote><p><em>Bu tool&#8217;u manuel a\u00e7abilmek i\u00e7in &#8216;View&#8217; men\u00fcs\u00fcnden &#8216;AWS Explorer&#8217; sekmesine t\u0131klayarak, oradan da &#8216;AWS Lambda&#8217; kategorisinden ilgili function&#8217;a t\u0131klayabilirsiniz.<\/em><\/p><\/blockquote>\n<p>Ayn\u0131 \u015fekilde olu\u015fturulmu\u015f ve upload edilmi\u015f Lambda Function&#8217;lar\u0131 AWS Console \u00fczerinden de g\u00f6rmek isterseniz a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde oldu\u011fu gibi &#8216;Lambda&#8217; keyword&#8217;\u00fc ile ilgili servise giderek listeleyebilir ve oradan da \u00e7al\u0131\u015ft\u0131rabilirsiniz.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-2.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-2.gif\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"800\" height=\"392\" class=\"aligncenter size-full wp-image-26030\" \/><\/a>Ayr\u0131ca AWS Console \u00fczerinde &#8216;Lambda&#8217; servisinin &#8216;Code&#8217; sekmesinde ilgili function&#8217;a dair paket boyutu, \u00e7al\u0131\u015fma zaman\u0131 bilgileri vs. gibi t\u00fcrl\u00fc ayr\u0131nt\u0131lar\u0131 bulabilirsiniz.<\/p>\n<h4>AWS Lambda Function&#8217;\u0131 Re-Publishing Etme<\/h4>\n<p>\u015eimdi fonksiyonun yap\u0131s\u0131 \u00fczerinde a\u015fa\u011f\u0131daki gibi de\u011fi\u015fiklikler yapal\u0131m ve tekrardan yay\u0131nlayal\u0131m.<\/p>\n<div style=\"font-size:12px;\">\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\nusing Amazon.Lambda.Core;\r\nusing System.Net.Http.Headers;\r\n\r\n\/\/ Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class.\r\n&#x5B;assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.SystemTextJson.DefaultLambdaJsonSerializer))]\r\n\r\nnamespace AWS.Lambda.Example;\r\n\r\npublic class Function\r\n{\r\n    public Response FunctionHandler(Person person, ILambdaContext context)\r\n    {\r\n        if (person.Age &lt; 18)\r\n            throw new Exception(&quot;The relevant person cannot be under the age of 18!&quot;);\r\n        return new Response()\r\n        {\r\n            Message = &quot;The person has been verified!&quot;\r\n        };\r\n    }\r\n}\r\n\r\npublic class Person\r\n{\r\n    public string Name { get; set; }\r\n    public string Surname { get; set; }\r\n    public int Age { get; set; }\r\n}\r\npublic class Response\r\n{\r\n    public string Message { get; set; }\r\n}\r\n<\/pre>\n<\/div>\n<p>Tekrardan yay\u0131nlama s\u00fcrecinde Solution Explorer \u00fczerinden &#8216;Publish to AWS Lambda&#8230;&#8217; sekmesini kullanabilece\u011finiz gibi a\u015fa\u011f\u0131daki AWS CLI talimat\u0131n\u0131 da proje dizininde vermeyi tercih edebilirsiniz.<\/p>\n<div style=\"text-align:center;\"><code style=\"color:red;\">dotnet lambda deploy-function<\/code><\/div>\n<p>Tabi bu talimat\u0131n \u00e7al\u0131\u015fabilmesi i\u00e7in Amazon Lambda Tool&#8217;lar\u0131n\u0131n makinenizde y\u00fckl\u00fc oldu\u011fundan a\u015fa\u011f\u0131daki talimat e\u015fli\u011finde emin olunuz.<\/p>\n<div style=\"text-align:center;\"><code style=\"color:red;\">dotnet tool install -g Amazon.Lambda.Tools<\/code><\/div>\n<p><a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-20.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-20.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"1092\" height=\"550\" class=\"aligncenter size-full wp-image-26032\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-20.png 1092w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-20-300x151.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-20-1024x516.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-20-768x387.png 768w\" sizes=\"auto, (max-width: 1092px) 100vw, 1092px\" \/><\/a><\/p>\n<h4>Cloudwatch Logging<\/h4>\n<p>AWS Lambda servisinin Cloudwatch olarak bilinen \u00f6zel bir loglama mekanizmas\u0131 mevcuttur.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-3.gif\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-3.gif\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"800\" height=\"369\" class=\"aligncenter size-full wp-image-26034\" \/><\/a>Bu mekanizmaya AWS Console \u00fczerinden yukar\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcndeki gibi direkt &#8216;Cloudwatch&#8217; kelimesini aratarak eri\u015febilirsiniz.<\/p>\n<p>\u0130lgili mekanizma a\u015fa\u011f\u0131daki ekran g\u00f6r\u00fcnt\u00fcs\u00fcnde oldu\u011fu gibi bir function&#8217;a dair t\u00fcm detaylar\u0131 loglamakta ve belirli bir zaman aral\u0131\u011f\u0131na dair s\u00fcreci net bir \u015fekilde yorumlayabilmemizi sa\u011flayacak verileri bizlere sunmaktad\u0131r.<a href=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-21.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-21.png\" alt=\".NET 7 - AWS Lambda \u0130le Serverless Computing\" width=\"1146\" height=\"568\" class=\"aligncenter size-full wp-image-26035\" srcset=\"https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-21.png 1146w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-21-300x149.png 300w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-21-1024x508.png 1024w, https:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2022\/12\/NET-7-AWS-Lambda-Ile-Serverless-Computing-21-768x381.png 768w\" sizes=\"auto, (max-width: 1146px) 100vw, 1146px\" \/><\/a><\/p>\n<h4>AWS Lambda Ne Zaman ve Hangi Durumlarda Kullan\u0131lmal\u0131d\u0131r?<\/h4>\n<p>Son olarak ak\u0131llarda kalabilecek suallere cevap niteli\u011finde bir ka\u00e7 kelamda bulunup i\u00e7eri\u011fimizi nihayete erdirelim isterim. AWS Lambda servisinin ne zaman ve hangi durumlarda kullan\u0131laca\u011f\u0131n\u0131 sorarsan\u0131z e\u011fer daha \u00f6nce de belirtildi\u011fi gibi herhangi bir sunucuyu y\u00f6netmenize ihtiya\u00e7 duymayaca\u011f\u0131n\u0131z ve yaln\u0131zca direkt i\u015flevine odaklanaca\u011f\u0131n\u0131z operasyonlar s\u00f6z konusu ise Lambda Function&#8217;lar\u0131 d\u00fc\u015f\u00fcnebilirsiniz. Genellikle 10-15 dakikadan fazla i\u015flev s\u00fcresi olmayan operasyonlar i\u00e7in olduk\u00e7a idealdir diyebiliriz. Ama bu tarz durumlar\u0131n d\u0131\u015f\u0131ndaki operasyonlar i\u00e7in de AWS Lambda&#8217;ya tabi ki de ba\u015fvurabilirsiniz.<\/p>\n<p>AWS Lambda&#8217;y\u0131, bahsi ge\u00e7ti\u011fi \u00fczere otomatik olarak \u00f6l\u00e7eklendirmeyi ger\u00e7ekle\u015ftirdi\u011fi, 1 milyon kadar request&#8217;i kar\u015f\u0131lad\u0131\u011f\u0131 ve 400.000 GB kadar alan\u0131 \u00fccretsiz olarak kullanma olana\u011f\u0131 tan\u0131d\u0131\u011f\u0131 i\u00e7in herhangi bir ihtiya\u00e7 durumunda g\u00fc\u00e7l\u00fc bir alternatif olarak de\u011ferlendirebilirsiniz. <\/p>\n<h4>AWS Lambda Ne Zaman Kullan\u0131lmamal\u0131d\u0131r!<\/h4>\n<p>Esas mesele bir teknolojinin ne zaman ve hangi durumlarda kullan\u0131lmamas\u0131 gerekti\u011fini bilmektedir. AWS Lambda a\u00e7\u0131s\u0131ndan olay\u0131 de\u011ferlendirirsek e\u011fer her Lambda Function yaln\u0131z 15 dk kadar \u00e7al\u0131\u015fabilece\u011finden dolay\u0131 daha uzun s\u00fcreli i\u015f y\u00fck\u00fc bar\u0131nd\u0131racak operasyonlar i\u00e7in m\u00fcmk\u00fcn mertebe ka\u00e7\u0131n\u0131lmas\u0131 gereken bir servistir. Ayr\u0131ca ayl\u0131k fatura i\u015flevsel olarak bir function&#8217;\u0131n \u00e7al\u0131\u015fma s\u00fcresiyle do\u011fru orant\u0131l\u0131 olaca\u011f\u0131 i\u00e7in karma\u015f\u0131k ve uzun i\u015flem gerektiren operasyonlarda da maliyeti d\u00fc\u015f\u00fcrebilmek i\u00e7in AWS Lambda&#8217;y\u0131 kullanmadan \u00f6nce kodu derleyip toparlaman\u0131z\u0131 \u00f6neririm&#8230;<\/p>\n<p>\u0130lgilenenlerin faydalanmas\u0131 dile\u011fiyle&#8230;<br \/>\nSonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar&#8230;<\/p>\n<p>Not : \u00d6rnek \u00e7al\u0131\u015fmay\u0131 a\u015fa\u011f\u0131daki github adresinden inceleyebilirsiniz.<br \/>\n<a href=\"https:\/\/github.com\/gncyyldz\/AWS.Lambda.Example\" rel=\"noopener\" target=\"_blank\">https:\/\/github.com\/gncyyldz\/AWS.Lambda.Example<\/a><\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Merhaba, Bu i\u00e7eri\u011fimizde .NET 7&#8217;de AWS Lambda ile serverless bir fonksiyonalite in\u015fa etmeyi ve deploy i\u015flemlerini inceliyor olaca\u011f\u0131z. Serverless Applications Nedir? G\u00fcn\u00fcm\u00fcz yaz\u0131l\u0131m geli\u015ftirme s\u00fcre\u00e7lerindeki en \u00e7a\u011fda\u015f yakla\u015f\u0131mlardan birisi uygulamalar\u0131n serverless mimariler \u00fczerinden tasarlanmas\u0131d\u0131r.&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":26039,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4730],"tags":[4731,4739,4742,4741,4745,4747,4748,4744,4746,3663,4743,4740],"class_list":["post-25987","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aws","tag-aws","tag-aws-lambda","tag-aws-serverless","tag-aws-serverless-computing","tag-aws-toolkit-extension","tag-cloudwatch","tag-cloudwatch-logging","tag-lambda-functions","tag-mock-lambda-test-tool","tag-serverless","tag-serverless-applications-nedir","tag-serverless-computing"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/25987","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=25987"}],"version-history":[{"count":24,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/25987\/revisions"}],"predecessor-version":[{"id":26038,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/25987\/revisions\/26038"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media\/26039"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=25987"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=25987"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=25987"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}