#1 Azure Functions Nedir? Azure Functions Nasıl Kullanılır?

Emir Ayhan
Kariyer.net Tech
Published in
4 min readDec 7, 2020
Serveless Apps With Azure Functions

Uzun zamandır yazmak istediğim bu seriye nihayet başlayabildim. Bu seride “Azure Functions” nedir ? Nasıl kullanılır? Trigger tipleri nelerdir ve ilk function’ınızı yaratmak için bilmeniz gereken temel bilgileri aktaracağım.
Azure functions pek çok yazılım dilini desteklemektedir. Benim paylaşacağım kod parçacıkları .Net geliştirmekte olduğum için C# dilinde olacaktır. Fakat sizlerde function app yaratmak için aynı mimariyi devam ettirebilirsiniz.(Python, Powershell, Java, F#, C# vb..)

Azure Functions Nedir?

Derinlemesine giriş yapmadan önce Azure Functions’ın ne olduğunu açıklayalım. Öncelikle Microsoft’un kendi resmi hesabında azure function tanımını şöyledir;

“Azure Functions is a serverless compute service that lets you run event-triggered code without having to explicitly provision or manage infrastructure.”

Microsoft’a göre azure functions tanımı en basit haliyle bu şekildedir. Fakat daha da temele indirirsek; “sen sadece kodunu yaz, sunucu işini bana bırak ben handle ederim” diyerek geliştiriciyi tamamen sunucu tarafından soyutlamıştır.

Zaten “serverless”’ mantığı da bu demek değil miydi ? Azure, yazılımcılar için server yönetimini tamamen kendisi otomatize etmiştir. İşte burada azure functions için ilk avantajı yakalamış olduk.

İlk avantajımızı yakaladıktan sonra ikinci avantajı da basit kod parçalarıyla farklı tetikleyiciler kullanarak bizlere birden fazla solution imkanı sağlayabilir. (Tetikleyecilere serinin devamında değineceğim.)

Farklı tetikleyiciler ile basit kod parçacıklarını çalıştırma imkanı sayesinde, farklı bir solution mimarisi oluşturma imkanı tanır. İşleri küçük parçalara bölüp yönetmek daha kolay hale gelir. Bu da ikinci avantajı.

Bu serinin ilk yazısında detaylandırdığım Azure Functions için diğer temel noktalar;

  • En büyük avantajı sunucusuz çalışması (Tabiki de sunucu yok diye düşünmeyin. Sadece geliştiriciden soyutlanmış olduğunu unutmayın.)
  • Bakım yapılması gerekecek bir alt yapısı yoktur. Bu da sunucu maliyetlerini önemli ölçüde azaltır. Yazılım geliştirme maliyetini de düşürür.
  • Functions maliyetleri ise oldukça düşüktür. Sadece kodunuz tetiklendiğinde ödeme yaparsınız. ( Consumption plan ve app service plan gibi hosting planlarının ne olduğunu ve hangisini tercih etmemizin daha sağlıklı olacağına bir sonraki yazımı okuyarak belirleyebilirsiniz.)
  • Bağımsız bir şekilde ölçeklenebilir.
  • Microservice tabanlı mimarilerde büyük roller yüklenebilir.
  • Çoklu dil desteği sunar.
  • Çeşitli olaylara göre çok kolayca tetikleyici işlevi sağlar.
  • Latency’i büyük ölçüde azaltır.
  • Continuous Integration ve Delivery’i destekler.
  • Application Insight ile derinlemesine monitör edebilme şansı sunar.
  • Bir function app yaratıldıktan sonra içerisine birden fazla function yazılabilir.

Azure Functions Nasıl Kullanılır ?

Azure functions ile ilgili dökümansal alt yapımızı oluşturduktan sonra gelin beraber bir azure function app yaratalım.

Öncelikle azure hesabınız ile azure portal da oturum açalım. Karşımıza çıkan ekranda search box’a Function App yazalım ve çıkan ilgili sonuca tıklayalım.

Create Function App on Azure Portal -1

Daha sonra karşımıza çıkan ekranda Add diyerek ilerliyoruz.

Create Function App on Azure Portal -2

Aşağıda açılacak olan ekranda kurulum için son hazırlıklarımızı yapıyor olacağız. Oluşturulmuş olduğu bir resource grup yok ise yenisini oluşturmamız gerekiyor. Create new diyerek yaratalım. Daha sonra uygulamamıza özgü ismi verin. Burada önerim azure’un her bir ürünü için tavsiye edilen naming conventions adlı makalesini okumanızı tavsiye ederim. İlk başlarda belki biraz zorlanabilirsiniz fakat ileride gerçekten güzel bir subscription hiyerarşisi çıkarttığında bana dua edeceksiniz:)

Geçelim runtime stack’imize. Burada ben .net core ile ilerleyeceğim için, .Net Core 3.1 seçiyorum. Siz de oluşturacağınız function’ın yazılım diline göre uygun runtime stack değerini burada seçebilirsiniz. Region içinse bulunduğunuz konuma en yakın olanı region’ı seçmenizi öneriyorum. Yakın oldukça latency azalacaktır.

Create Function App on Azure Portal -3

Sıra geldi hosting seçimine. Her şeyden önce bir function app’imizin kesinlikle bir storage account’u olacaktır. Serimizin devamında sizlere bundan bahsedeceğim. Aynı resource grupta olduğu gibi, eğer yoksa storage account yaratalım. Ben genelde windows’a deploy almak istediğim için operations system de windows’u tercih ediyorum.

Create Function App on Azure Portal -4

Burası çokomelli :) Gelelim plan type kısmına. Yukarıda bunlar için ayrıca bir story’i paylaşacağımı söylemiştim. Bir sonraki yazımı okuyarak hostingler hakkında bilgi alabilirsiniz. Fakat yüzeysel olarak geçersek kısaca bu sizin cebinizden çıkacak para :)

Monitoring ayarlarını daha sonrada yapabileceğiniz için ben direk geçiyorum ve review and create ederek function app’ı yaratmış oluyorum.

Artık bir function app’imiz mevcut. Güle güle kullanın :)

Serinin diğer yazıları için ise takipte kalalım… Stay Tuned !!

Bir sonraki yazıma geçmek için #2 Azure Functions İçin Hosting Seçenekleri

--

--