Tag: Powershell Core

Serverless automation using PowerShell Core in Azure Functions – Bölüm 4

Bir önceki yazımızda Visual Studio Code üzerinde ilk fonksiyonumuzu oluşturduk. Hatırlarsanız fonksiyonumuzun adı getResourceStatus olarak belirlemiştik. Fonksiyon bize Azure sanal sunucuların hakkında anlık raporlar (html output olarak) üretmesini sağlamak temel hedefi idi. Bu fonksiyon RESTful isteklerin kabul ediyor olacak ve istediğimiz zaman abonelik içerisinde bulunan sanal sunucuların yapılandırma bilgilerini anlık ve her yerden bir web request ile raporlayabileceğiz.

Fonksiyonumuzu deploy etmeden önce bildiğiniz gibi Azure Subscription içerisine Azure Function App deploy etmemiz gerekiyor. Bunu dilerseniz Azure Portal, ARM Template, VSCode, Powershell yapabilirsiniz. Bu yazı içerisinde size aşağıdaki Powershell Script’ini takip ederek Azure Function App oluşturmanızı yardımcı olacak olan kod bloğunu paylaşıyorum.




Serverless automation using PowerShell Core in Azure Functions – Bölüm 3

Artık ilk Event-Based Automation çözümümüzü beraber geliştirebiliriz, senaryomuzu basit ve anlaşılır yapmak için hemen beraber belirleyelim. Başlangıç seviyesi için kesinlikle basit bir senaryodan ilerleyeceğiz. Örneğin, Azure Function ‘HTTP’ trigger (tetikleyicisini) kullanarak parametrik olarak gönderilen sanal sunucunun adına göre Azure Function bizim için HTML bir Report oluşturmasını isteyelim. Giriş yazımızı hatırlarsanız, o kısımda ‘HTTP’ kullanırsak bize bir RESTful HTTP uç noktaları sunar API gibi davranacağından bahsetmiştik. Şimdi ön gereksinimlerimiz neler bunlara bir göz gezdirelim.

  • Azure Subscription
  • Visual Studio Code
  • Powershell Core – 6
  • Visual Studio Code üzerinde AZ Function Core Tools eklentisi

Yukarıda ön gereksinimleri elde ettiğinizi varsayarak çözümü geliştirmeye başlayabiliriz. Önce hemen bir VS Code üzerinde Azure Function projesi oluşturalım. Visual Studio Code üzerinde terminal’e gelip hızlı bir şekilde aşağıdaki işlemleri yaparak yeni bir Azure Function App Projesi oluşturalım.




Serverless automation using PowerShell Core in Azure Functions – Bölüm 2

Fonksiyonlarımız için ne tür Triggers ( tetikleyiciler) kullanabileceğimizden bahsettik ve örneklerini anlattık. Şimdi hız kesmeden Bindings (tam türkçeye çeviremiyorum. Bağlar/Bağlantılar) kavramına açmak istiyorum. Bindings size fonksiyonunuz içerisinden verilere bağlanmanız için bir yol veya yöntem için yardımcı olurlar. Bir önceki yazımızda bildiğimiz gibi Triggers ( tetikleyicilerin ) bize geliştirdiğimiz fonksiyonun hangi servisler tarafından tetiklenebileceğini söyleyebiliyorduk. Örneğin, Azure Queue Servisi ile fonksiyonunuz tetiklenmesini ( yani çalışmasını/aksiyon almasını ) sağlayabiliyoruz. Fakat bu tetiklemeden sonra Storage Queue servisinden gelen veri bizim için fonksiyonun içerisindeki parametreye atanıyor. Bindings kullanmak zorunda değiliz fakat kullanma senaryomuzu biraz daha açmak ister isek, Storage Queue’den bir mesaj geldiği zaman tetiklenecek olan Azure Fonksiyonumla beraber Storage Table tuttuğum transcation verileriminde bindings kullanarak bir parametreye atanması sağlayıp, daha sonra bu verileri karşılaştırabilir ve fonskiyonumun onun sonuca göre çalışmasını sağlayabilirim. Bindings tamamen isteğe bağlıdır. Bu yüzden karşımıza farklı Bindings türleri çıkıyor olacak. Bir önceki yazımızda herhangi bir kod yazmadan tetikleyen servise erişmemizi sağlayacağından bahsetmiştik. Bindings sayesinde yine farklı servislere kod yazmadan erişip bir parametreye atayıp veriler elde edebilir ve onları değerlendirebiliriz.




Serverless automation using PowerShell Core in Azure Functions – Bölüm 01

Öncelikle bu yazı serisine başlamadan şunu göz önünde bulundurmanızı tavsiye ediyorum, yazı içerisinde geçen Azure servislerin detaylı bir biçimde neler yaptığını anlatmayı düşünmüyorum. Bunları anlamak ve kavramak için internet üzerinde örn:’Microsoft Docs’ sınırsız kaynaklara erişme şansınız var. Genel anlamıyla servislerin nerede, ne zaman ve niçin kullanılması gerektiğine değinip servisleri sırası geldikçe ve kullanıma başladıkça sizinle paylaşıyor olacağım. Bu servisleri kullanırken temel veya yüzeysel bir açıklama görebilirsiniz. Fakat bu yazı serisinin temel amacı Serverless hizmetlerini kullarank ve bunlar ile beraber Cloud veya Hybrid otomasyonunun nerelere doğru yelkenler açtığını, son olarakta Powershell Core’un tüm Azure Serverless hizmetlerinde ne/nasıl bir şekilde aktif şekilde röl aldığını anlamanıza yardımcı olmaya çalışacağım.

Uzun süredir Azure Functions ( Serverless Functions ) kullanarak interaktif biçimde Microsoft servislerini deneyimleyip içli dışı olup zaman geçiriyorum. Cloud Engineering departmanlarının even-based cloud otomasyon süreçlerini tasarlıyorum. Azure Functions en sade ve özet haliyle Microsoft’un bize sunduğu Serverless Functions hizmeti olarak karşımıza çıkıyor. İşte tam bu noktada ‘Serverless’ olmasının verdiği avantaj ile Powershell Core esnekliğinide kullanarak Microsoft Azure’un diğer servisleri ile entegre biçimde kullanıp veya başka bir Cloud Provider’ın API/SDK kullanarak farklı otomasyon senaryolarına doğru yelken açabiliyoruz. Azure Functions farklı ‘Run time’ versiyonlarına sahip ve her ‘Run Time’ versiyonunda farklı (.Net veya .Net Core) framework – yani alt yapısı ile karşımıza çıkıyor. Azure Functions App içerisinde run time versiyonlarını daha iyi anlamak için lütfen şu sayfa üzerine göz gezdiriniz. Yazımızın devamında Azure Functions App ‘Run Time 2.x veya 3.x’ kullanarak devam edeceğim. Deneyimlerim doğrultusunda söyleyebilirim ki, ‘Run Time2.x’ den sonra Powershell Core gücünü arkasına alarak çok farklı yenilikler geldi ve Powershell Core ile alt yapı otomasyonu ile uğraşan Developer veya Powershell Developer’ın işlerini kolay hale getirebilcek çözümler sunuyor. Zaten Microsoft Azure Functions Apps ‘Run Time’ 1.x için experimental olarak bizlere kullanıma sunuyordu.