Azure Functions Core Tools, yerel bilgisayarınızda komut satırından işlev geliştirme ve çalıştırma olanağı sunar.
Azure portal işlev düzenleyicisini kullanmak yerine, ilk basit bir ilgi alanı hesaplayıcısı işlemini yerel olarak oluşturmayı denemeye karar verdiniz. Visual Studio veya Visual Studio Code gibi geliştirme ortamlarını kullanıp kullanmamak konusunda kararsız olabilirsiniz; her ikisi de Azure Functions tarafından desteklenen şekilde genişletilebilir. Bu nedenle, Temel Araçlar ve temel bir metin düzenleyiciyi kullanarak komut satırından işlevleri geliştirmeye karar verirsiniz.
Bu Yazımda, işlevleri yerel olarak oluşturmayı ve çalıştırmayı öğreneceksiniz. Bir sonraki bölümde, Temel Araçlar hakkında daha fazla bilgi edinmek için Azure Cloud Shell kullanacağız
Hadi bu kavramları hep birlikte görelim
Azure Functions Core Tools, yerel bilgisayarınızda Azure Functions geliştirmeniz ve test etmeniz için kullanabileceğiniz çeşitli komut satırı araçlarıdır.
Temel Araçlar, işlevlerinizle ilgili çeşitli özelliklere sahip olsa da, temel amacı şunlardır:
- Yerel bilgisayarınızda işlev geliştirme için gereken dosyaları ve klasörleri oluşturma.
- İşlevlerinizi yerel(local) olarak çalıştırarak test edin ve hataları ayıklayın.
- İşlevlerinizi Azure’a yayımlamak.
Core Tools, “func” adında tek bir komut satırı yardımcı programı olarak paketlenir. Bu komutu başka bir komutla çalıştırdığınızda, sürüm bilgileri ve kullanım kılavuzu görüntülenir. Şu an için bunları okumanız gerekmez, ancak bunlar aşağıdaki gibi görüntülenir yani kahramanımız “func” komutu
Bu araçlar, Azure Functions geliştirme sürecinizi daha verimli hale getirmemize yardimci olur.
Aslında Çekirdek Araçlar, daha büyük bir tümleşik geliştirme ortamının veya aracın uzantıları olmayan, bağımsız yardımcı programlardır. Yukarıdaki görevleri sadece komut satırı aracılığıyla ve Çekirdek Araçlar kullanarak gerçekleştirebilirsiniz. Kod yazmak ve yapılandırmaları değiştirmek için tercih ettiğiniz metin düzenleyiciyi kullanabilirsiniz. Azure’da oturum açmak ve diğer yönetim görevlerini gerçekleştirmek içinse Azure CLI veya Azure PowerShell gibi araçlara ihtiyaç duyacaksınız her ikisinide şiddet ile tavsiye ederim.
Ek olarak Visual Studio’da İşlevler ile ilgili özellikler ve Visual Studio Code için Azure Functions uzantısı gibi diğer İşlev geliştirme araçları, Temel Araçlar’ın üzerine eklenmiştir.
Core Tools’un iki farklı sürümünü kullanabiliriz : 1.x ve 2.x sürümleri. Genellikle en iyi destek ve çoklu platform (Windows, macOS ve Linux) uyumluluğu sunması nedeniyle, en son düzeltmeleri içeren 2.x sürümünü kullanmanızı tavsiye ediyoruz zaten 1x kullananda kalmamiştir.
Yerel geliştirme ve Azure portalında geliştirme karşılaştırması
Azure portal, güçlü bir işlev düzenleme deneyimine sahiptir. Ancak, genellikle yerel olarak geliştirdiğiniz işlevlerin değiştirilmesini desteklemez. Temel Araçlar’a dayalı bir yerel geliştirme iş akışını kullanmaya başladıktan sonra, işlevlerinizi değiştirmek için Azure portalı kullanamazsınız.
İşlevleri yerel (local) olarak oluşturma
Şimdi Core Tools ile işlevler oluşturmayı ve bunları yerel olarak çalıştırmayı daha yakından inceleyelim.
İşlev uygulamaları ve işlev projeleri:
Azure’da yayınlanan her işlev, aynı ortamda birlikte yayınlandığı bir veya daha fazla işlev koleksiyonuna ait olan bir işlev uygulamasının bir parçasıdır. İşlev uygulamasındaki tüm işlevler, ortak bir yapılandırma değerleri kümesini paylaşır ve aynı dil çalışma zamanını kullanır(burada languange ve time zone kast ediyorum). İşlev uygulaması, bağımsız olarak yapılandırılabilir ve yönetilebilir bir Azure kaynağıdır.
Yerel olarak işlevleri geliştirirken, bir işlev projesinde çalışırsınız. Bir işlev projesi, işlevlerinizi tanımlayan kod ve yapılandırma dosyalarını içeren bir klasördür. Bu klasör, bilgisayarınızdaki işlev projesini temsil eder ve aynı dil çalışma zamanını kullanan birden fazla işlevi içerebilir.
Yerel olarak geliştirmeye başlamak için, düzenli bir işlev projesi klasörü oluşturmanız gereklidir. Her yeni işlev eklediğinizde, ilgili kod ve yapılandırmaları eklemelisiniz. Bu dosyaların eksiksiz ve doğru bir şekilde yapılandırılması önemlidir, aksi halde işlevler düzgün çalışmayabilir.
Eğer isterseniz, işlev projesi klasöründeki gereken dosyaların adlarını, içeriğini ve yapısını anlayabilirseniz ve bunları kendinizde oluşturabilirsiniz. Ancak bu işlem zaman alıcı ve hata yapma olasılığınızı artırabilir ben funcitons un oluşturduğu dosyları üzerinde edit development yapmayi tercih ediyorum.
Azure Functions Core Tools kullanarak, bu dosyaları manuel olarak oluşturmanıza gerek yoktur. Sıfırdan işlev projeleri ve işlevler oluşturmak için Core Tools’u kullanabilirsiniz.
Yeni bir işlev projesi oluşturmak için “func init” komutunu komut satırında kullanacağız.
“func init” komutu, uygulama için kullanmak istediğiniz dil çalışma zamanını seçmenizi ve proje klasörünün içeriğini uygun şekilde yapılandırmanızı sağlar.
Yeni bir işlev projesi oluşturduğunuzda, proje klasöründeki dosyalar, seçtiğiniz dil çalışma zamanına bağlı olarak ayarlanır. Hangi çalışma zamanını seçerseniz seçin, her durumda en önemli iki proje dosyası her zaman bulunur:
- host.json: İşlev uygulamasının çalışma zamanı yapılandırması değerlerini depolar. Bu dosyada bulunan ayarlar, işlevlerin hem yerel hem de Azure’da çalıştırılması sırasında kullanılır.
- local.settings.json: Yalnızca Core Tools ile yerel olarak çalıştırıldığında işlev uygulamasının geçerli olan yapılandırma değerlerini depolar. Bu dosya iki tür ayar içerir:
- Yerel çalışma zamanı ayarları: Yerel işlevlerin çalışma zamanını yapılandırmak için kullanılır.
- Özel uygulama ayarları: Uygulamanızın ihtiyaçlarına göre ekleyebileceğiniz ve yapılandırabileceğiniz ayarlar. Tüm işlevler uygulama ayarlarına erişebilir ve bunları kullanabilir.
“func init” komutu tarafından oluşturulan işlev projeleri başlangıçta herhangi bir işlev içermez. ileri ki adımda göstereceğim size
kahramanımız “func new"
Projedeki tek tek her işlev, davranışını tanımlamak için kod ve yapılandırma gerektirir. Bir işlevin proje klasöründe func new
çalıştırıldığında, geliştirmeye başlamak için ihtiyaç duyduğunuz yeni bir işlev ve gereken tüm dosyalar tak diye saniyeler içinde oluşturulur.
Ekran görüntüsündeki fonksiyonlara göre ilk templatemizi oluşturabiliriz
“func new” komutu, işlev projeniz için seçtiğiniz dilde hazır bir başlangıç uygulaması oluşturur. Bu komut, hangi türde bir işlev tetikleyici kullanmak istediğinizi ve işleve vermek istediğiniz adı sorduktan sonra çalışır. Oluşturulan başlangıç kodu, seçtiğiniz tetikleyici türünü nasıl kullanacağınızı size gösterir ve hızlı bir başlangıç yapmanıza yardımcı olur. Bu başlangıç kodunu kendi uygulamanızın gereksinimlerine göre özelleştirmeniz, derlemeyi, çalıştırmayı, test etmeyi ve yayımlamayı tamamlamanız gereken son adımlardır artık ne izleyeceksek yada çaliştirmasini istiyorsak bu json dosyasina yazilir ve burdan çalişir.
İşlevleri yerel (local) olarak çalıştırma
İşlevler, bağımsız olarak çalışabilen programlar değildir; bunlar barındırılmaları gereken bileşenlerdir. İşlev ana bilgisayarı, işlev kodunuzun ötesinde gerekli tüm işleri yapar: yapılandırmayı yükler, tetikleyicileri ve HTTP isteklerini dinler, işlevlerinizin yazıldığı dili çalıştıran işlemi başlatır, günlük kayıtları oluşturur ve daha fazlasını yapar. Azure’da, işlev uygulamaları başladığında işlev konaklarını otomatik olarak başlatır.
İşlev konaklarını yerel olarak başlatmak ve kendi işlevlerinizi yayınlamadan önce test etmek için Azure Functions Core Tools’u kullanıyoruz. İşlevlerinizi yayınlamadan önce çalıştırarak, yapılandırmanızın ve kodunuzun doğru şekilde yüklendiğinden emin olamalıyız Ayrıca, Azure kaynaklarına ihtiyaç duymadan gerçek HTTP çağrıları yaparak işlevlerinizi test edebilirsiniz.
İşlev konaklarını yerel olarak başlatmak için, işlevler proje klasöründen “func start” komutunu çalıştırabilirsiniz. Core Tools, işlevlerinizi çağırmak için kullanabileceğiniz yerel URL’leri görüntüler. İşlevlerinizle etkileşime geçmek için, konak çalışırken HTTP çağrılarını yapabilen araçları veya kütüphaneleri kullanabilirsiniz, örneğin “curl”. Core Tools, konak tarafından oluşturulan tüm günlük kayıtlarını gerçek zamanlı olarak terminalde görüntüleriz.
Daha fazla kaynak ve içeriğe ulaşmak için Functions guide bakabilirsiniz.
https://learn.microsoft.com/en-us/azure/azure-functions/functions-reference?tabs=blob&pivots=programming-language-csharp