"Enter"a basıp içeriğe geçin

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

Azure Functions, sunucu yönetimini otomatik olarak yöneten ve bize sadece kod yazma kısmını bırakan bir servistir. Azure Functions ile herhangi bir sanal makine veya web uygulaması oluşturmadan yazdığımız kodları çalışıtırabiliyoruz. Bu durum “serverless” olarak ifade ediliyor. Serverless deyince aklınıza programın çalışması için sunuculara gerek olmadığı gelmesin. Serverless denmesinin sebebi altyapı ile ilgili operasyonların kullanılan servis tarafından(amazon lambda, azure functions) arkaplanda gerçekleştirilmesidir.

Azure Functions, C#, JavaScript, F#, Java, PowerShell, TypeScript, Python dillerini destekliyor. Bash, Batch(.cmd, .bat), PHP desteği ise 1.x versiyonunda destekleniyor. Azure Functions güncel sürümü ise 2.x.

Azure Function App Oluşturma

Azure portal üzerinde tüm servisler kısmından Function App’i seçin. “Add” butonuna basarak bir Function App oluşturun. Bir function app içinde birden fazla function oluşturabilirsiniz.

Sıra Function App’in kurulumunu yapmakta.

App name : Uygulama adı, eşsiz bir ad olmalıdır.
Resource Group: Function App in yer alacağı bir Resource Group seçin
Os : İşletim sistemi seçimi bu örnekte bir önemi yok
Hosting Plan : Consumption Plan fonksiyon çalışma başına ücretlendirme yapar. Bu planı seçerseniz fonksiyonlarınız yük altındayken Azure otomatik olarak ölçeklendirme yaparak isteklere en kısa zamanda cevap verecektir. App service plan ise önceden oluşturulmuş bir sanal makine üzerinde fonksiyonlarınızı çalıştırır ve bu makinenin kaynakları bellidir. İki planı karşılaştıracak olursak Consumption plan kullanım miktarına göre ücretlendirme gerçekleştiriken, App Service Plan ise oluşturulan sanal makine için ücretlendirme yapacaktır. App Service Plan seçerseniz ödeyeceğiniz ücret bellidir, Consumption Plan seçerseniz kullanım oranıyla doğru orantılı olarak ücret artacaktır. Yani Consumption Plan seçip oluşturduğunuz fonksiyonlar kullanılmazsa ücret ödemezsiniz. Bu yüzden Consumption Plan seçip devam ediyoruz.
Location : Size en yakın konumu seçebilirsiniz.
Runtime Stack : C# kulllanıcağımdan dolayı .Net Core seçiyorum.
Storage : Functions kullanmak için bir depolama hesabına ihtiyacınız var. Eğer daha önceden oluşturduysanız varolan hesabı kullanabilir veya yeni bir hesap oluşturabilirsiniz

Ayarları yaptıktan sonra “Create” butonuna basarak fonksiyon uygulamanızı oluşturun.


Kurulum birkaç dakika sürebilir.

Uygulama oluştuktan sonra bir fonksiyon oluşturup deneme yapalım.

“New Function” butonuna basarak yeni bir fonksiyon oluşturuyoruz.


Azure bizden kullanmak istediğimiz geliştirme ortamını seçmemizi istiyor. Test amacıyla portalı seçelim.

Burada ise yazacağımızı fonksiyonun hangi durumlarda tetikleneceğini belirliyoruz. Webhook + API seçiyoruz.


Fonksiyonumuz oluşturuldu. Örnek olarak gelen kodu inceleyelim. Fonksiyonumuz gelen http isteğinin parameterelerine ve body kısmına bakarak “name” parametresini arıyor. Eğer gönderilen istek bodysinde veya parametrelerinde “name” parametresi yoksa “BadRequestObjectResult” göndererek parametreyi bulamadığını belirtiyor. Parametreyi bulduğunda ise “Hello {name}” çıktısını veriyor.

Get Function Url’e basarak fonksiyon url’ini kopyalayın.

&name=ucanbaklava

Url sonuna name parametresini ekleyin ve bağlantıyı açın.
Fonksiyon sayfası üzerinde “Run” butonun ile de sonucu görebilirsiniz.

Visual Studio ile Azure Functions Kullanımı

Visual Studio ortamında Azure Functions kullanmak için “Azure Functions and Web Jobs Tools” bileşeni yüklü olmalıdır. Yeni proje oluşturma ekranından “Functions” seçerek projemizi oluşturalım.

Function trigger olarak HTTP seçelim. F5 ile projeyi çalıştırırsak karşımıza bir konsol ekranı gelecektir.
Http Functions: Function1: [GET,POST] http://localhost:7071/api/Function1

Fonksiyonumuz localhost üzerinde çalışıyor. Köşeli parantez içindeki kısım fonksiyonumuzun hangi requestleri kabul ettiğini gösteriyor. Adresi kopyalayıp adres sonuna “name” parametresi ekleyin ve tarayıcı üzerinde adresi açın.
?name=ucanbaklava

Fonksiyonumuzun sadece GET isteği ile tetiklenmesini istiyorsak metodumuzun parametre kısmından “post” parametresini kaldırabiliriz. Aynı zamanda diğer istek türlerini de parametre olarak ekleyebilirsiniz.

Azure Function Publish

Az önce oluşturduğumuz fonksiyonu kendi makinemiz üzerinde çalıştırdık. Şimdi bu projemizi Azure’a aktaralım. Azure hesabınızı ile Visual Studio’ya giriş yapın.
Solution Explorer üzerinde projeme sağ tıklayıp “Publish” seçeneğini seçiyorum.

Consumption plan seçip devam ediyoruz.

Bilgileri kontrol edip “Create” butonuna basıyorum.

Publish işlemi bittikten sonra karşımıza bu ekran gelecek. Site URL adresini açarsak fonksiyonumuzun çalıştığına dair bir web sayfası açılacaktır. Publish butonuna basın.

Azure portal üzerinde “All Resources” kısmından oluşturduğunuz function app’i açın. Oluşturduğunuz fonksiyonu açın ve “request body” kısmına “name” parametresini ekleyip çalıştırın. Böylece Visual Studio üzerinde oluşturduğumuz fonksiyonu Azure’a aktarmış olduk.

İlk Yorum Sizden Gelsin

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir