AWS Lambda Nedir? Nasıl deploy yapılır? (AWS Toolkit)

Daha önceki yazımda AWS Nedir? konusuna değinmiştik, şimdi gelin Amazon Web Servis hizmetlerinden biri olan Lambda ‘yı inceleyelim. Nasıl lambda oluşturulur, .Net te açtığımız Lambda projesini buraya nasıl deploy ederiz konularına bakalım..

AWS Lambda, sunucu yönetimi veya altyapı ayarlamalarıyla uğraşmadan kod çalıştırmanıza olanak tanıyan bir bulut bilişim hizmetidir (Serverless). Geleneksel sunucu tabanlı yaklaşımlardan farklı olarak, Lambda, olay tetikleyicileriyle çalışır ve yalnızca belirli bir olay gerçekleştiğinde kodunuzu çalıştırır. İşi bittikten sonra kendi kendine kapanır. Lambdaya çalışma süresi kadar ücret ödersiniz. Örnek verecek olursak, SQS (Simple Queue Service) deki kuyruğa kayıt atıldığı anda X bir lambdanın çalışması tetiklenebilir veya Amazon EventBridge deki Schedules ı kullanarak cron job kuralı yazıp lambdanın belirli zamanlarda çalışmasını sağlayabilirsiniz.

AWS Lambda, kodunuzu çeşitli programlama dillerinde yazmanıza olanak tanır (örneğin, Python, Node.js, Java, C#) ve yalnızca kullanıldığı süre boyunca ödeme yapmanızı sağlar. Bu, uygulama geliştirme ve dağıtım süreçlerini basitleştirebilir ve maliyetleri düşürebilir.

Yeni bir lambda nasıl oluşturulur?

AWS hesabınızın var olduğunu düşünerekten lafı dolandırmadan direk konuya giriyorum 🙂 Servisi hızlıca bulmak için search kısmına Lambda yazalım.

Gelen ekrandan sağ taraftaki Create function a tıklayın.

Daha sonra karşınıza aşağıdaki Create function ekranı çıkacaktır. Burada lambda için 3 kullanım seçeneği sunuluyor, ilki kendi yazacağımız ve deployunu yapacağımız seçenektir ki genelde bunu kullanıyoruz. “Use a blueprint” seçeneği hazır bazı işlevleri gerçekleştiren scriptler sunar ve bunları kullanmamızı sağlar. “Container image” seçeneği ise Docker container’larını kullanarak Lambda işlevlerini oluşturmanıza ve çalıştırmanıza izin verir, bu da daha fazla esneklik ve uyumluluk sağlar.

Alt seçeneklerde ise “Change default execution role” kısmında yetki tanımlaması yapılır. Varolan bir yetki seçilebilir veya yeni default bir yetki oluşturulabilir.

Bu kısım önemli, örneğin bu lambda ağınızdaki Redis e erişecek ise bu lambdaya atadığınız rolün RDS Access ile ilgili yetkilere sahip olması gerekmektedir.

Advanced settings kısmında ise lambda kullanım tipine göre seçenekler çıkmaktadır. Eğer Author from scratch seçeneğini seçtiyseniz, aşağıdaki seçenekler görünecektir. Henüz create aşamasında bu seçeneklerle ilgili ayarlamalar yapabilirsiniz veya lambdayı oluşturduktan sonra kendi Configuration kısmından da bu ayarları gerçekleştirebilirsiniz.

Lambdamızı oluşturduktan sonra buraya kodumuzu nasıl deploy edeceğiz ?

Bunun için öncelikle AWS Toolkit i kurmanız gerekiyor. Aşağıdaki linkten kullandığınız Visual Studio sürümüne göre gerekli kurulumu yapınız.

https://aws.amazon.com/tr/visualstudio/

Kurulumu yaptıktan sonra Visual Studio daki Create a new project ekranınızda AWS ile ilgili olan templateleri görebileceksiniz.

Buradan AWS Lambda Project i seçiyoruz, daha sonra bir blueprint seçmenizi isteyecektir “Empty Function” seçerek devam edebilirsiniz. (Diğer seçeneklere de bakabilirsiniz)

Son olarak FunctionHandler da geliştirmelerimizi yaptık ve deploy aşamasına geçtik diyelim. Projeye sağ tuş yapıyoruz ve “Publish to AWS” seçeneğini seçiyoruz, karşımıza aşağıdaki gibi bir ekran çıkacaktır. Burada Function Name kısmına tıkladığınızda AWS de daha önce oluşturduğunuz lambdaların listesi gelecektir. Hangi lambdaya deploy yapacaksak o lambdayı seçip Next e tıklıyoruz, sonraki ekranda lambda da tanımladığınız Environment Variables larda görünecektir. Ve Upload a tıklıyoruz.

Hadi geçmiş olsun 🙂 İlk lambdanızı deploy ettiniz.

Burada AWS Profile dosyanız eksik ise kayıtlı lambda listesi gelmeyecektir, Access Key ve Secret Key bilgilerinizin olduğu aws profil dosyanızın olduğundan emin olun. Neyden mi bahsediyorum, click here.

Hazırlarken keyif aldım, umarım faydası olur.
Yeni yazılarda görüşmek üzere 🙂

Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir