Alıştırma - Çekirdek Araçları kullanarak yerel olarak işlev oluşturma
Azure İşlevleri Temel Araçları, aşağıdaki işlemleri yaparak işlevleri kendi bilgisayarınızda yerel olarak geliştirmenizi sağlar:
- İşlev projesi için gerekli dosya ve klasörleri oluşturma.
- Projenizin kök dizininden yerel olarak çalışan bir İşlevler konağı sağlama.
Basit bir ilgi alanı hesaplayan bir işlev geliştirerek Azure İşlevleri ile çalışmanıza yerel olarak başlamaya karar verirsiniz. Sonunda birlikte çalışan ve diğer hizmetleri ve veritabanlarını çağıran daha karmaşık işlevler oluşturabilirsiniz. Temel bir kredi hesaplaması gerçekleştiren bir işlev oluşturmak için Temel Araçlar'ı kullanmak iyi bir başlangıçtır. İşlevinizi Azure'da yayımlamadan önce kendi bilgisayarınızda çalıştırmayı da denemek istiyorsunuz. Çekirdek Araçları'nı kullanarak tüm işlemleri Azure Cloud Shell'den yapabilirsiniz.
Azure Cloud Shell Temel Araçlar, Azure CLI ve kod yazmak için kullanabileceğiniz bir düzenleyici ile birlikte gelir. Devam etmeden önce yukarıda Korumalı alanı etkinleştir'i seçtiğinizden emin olun.
Yerel Azure İşlevleri projesi oluşturma
Bu alıştırmada, Core Tools kullanarak ilk JavaScript işlevinizi geliştirmek için Cloud Shell'i kullanın. Cloud Shell'de hem Core Tools'un hem de Node.js doğru sürümleri zaten yüklüdür.
Kök klasörden komutunu çalıştırarak
func init
yeniloan-wizard
bir klasörde işlev projesi oluşturun.func init loan-wizard
Çalışan çalışma zamanı seçmeniz istendiğinde düğüm için 3 girin.
Dil seçmeniz istendiğinde javascript için 1 girin.
Çıktıda diske yazılan dosyalar listelenir ve bunlar şu dosyalardır:
- host.json hem çalışma zamanı örneği hem de belirli tetikleyici ve bağlama türleri için uygulama düzeyinde yapılandırmayı destekler.
- local.settings.json yalnızca yerel davranışları ve uygulama ayarlarını (yerel ortam değişkenleri) ayarlar.
- package.json, yükleyip kodunuzda kullandığınız tüm paketleri izleyen, JavaScript’e özel bir dosyadır.
- .gitignore ve extensions.json , sırasıyla Git sürüm denetim aracı ve Visual Studio Code tarafından kullanılan yapılandırma dosyalarıdır. Şimdilik bunları yoksayabilirsiniz.
HTTP ile tetiklenen işlev oluşturma
İşlevinizi oluşturmanın zamanı geldi!
Cloud Shell'de yeni
loan-wizard
dizine gidin.cd ~/loan-wizard
İşlev oluşturma sihirbazını başlatmak için komutunu çalıştırın
func new
.func new
Şablon seçmeniz istendiğinde HTTP tetikleyicisi için 7 girin.
HTTP tetikleyicisi için bir işlev adı sağlamanız istendiğinde girin
simple-interest
.Cloud Shell düzenleyicisini açmak için aşağıdaki komutu çalıştırın.
code .
Sihirbaz, işlevler projesinde
src/functions
altında varsayılan şablon içeriğine sahip olan simple-interest.js adlı yeni bir dosya oluşturur. Bu kod, Azure İşlevleri için Node.js v4 programlama modelini destekler. Düzenleyiciyi kullanarak proje dosyalarını keşfetmek için bir dakikanızı ayırın. Ekran görüntüsü, düzenleyicide simple-interest.js açık olan genişletilmiş klasörü gösterir.
simple-interest işlevini uygulama
Core Tools'un simple-interest.js bizim için oluşturduğu varsayılan işlev uygulaması, sorgu dizesinde veya gelen HTTP isteğinin gövdesinde adlı name
bir girişi arar ve dizesini Hello, [name]
döndürür. HTTP tetikleyicisinin nasıl kullanılacağını gösteren iyi bir çizimdir, ancak bu kodu üç giriş parametresinden basit ilgiyi hesaplayan kodla değiştirmek istiyorsunuz.
Düzenleyicinin DOSYALAR bölmesinde src>işlevleri klasörünü genişletin ve simple-interest.js seçerek dosyayı düzenleyicide açın.
simple-interest.js içeriğinin tamamını aşağıdaki kodla değiştirin:
const { app } = require('@azure/functions'); app.http('simple-interest', { methods: ['GET','POST'], authLevel: 'anonymous', handler: async (request, context) => { const principal = parseFloat(request.query.get('principal')); const rate = parseFloat(request.query.get('rate')); const term = parseFloat(request.query.get('term')); if ([principal, rate, term].some(isNaN)) { // If any empty or non-numeric values, return a 400 response with an // error message return { status: 400, body: "Please supply principal, rate and term in the query string" }; } else { // Otherwise set the response body to the product of the three values return { body: principal * rate * term }; } } });
Bu betik, HTTP isteğinin sorgu dizesinde ,
rate
veterm
adlıprincipal
parametreleri arar. Daha sonra basit faiz hesaplamasının (principal * rate * term
) sonucunu döndürür.Ctrl S tuşlarına basarak dosyayı kaydedin ve Ctrl++Q tuşuna basarak düzenleyiciyi kapatın.
Cloud Shell'de işlevi çalıştırma
Yeni işlevinizi denemek üzere yerel olarak çalıştırmak için komutunu kullanarak func start
İşlevler çalışma zamanını (func.exe) bir arka plan işleminde başlatın; böylece komut satırı çalışırken kullanabilirsiniz. Ardından, işleviyle etkileşime geçmek için bir komut satırı aracı curl
kullanın.
Çekirdek Araçları'nı kendi bilgisayarınızdan kullanıyorsanız, ikinci bir terminal penceresinden veya web tarayıcısından kullanabilirsiniz curl
. Core Tools tarafından üretilen çıkış, ilk terminal penceresinde gerçek zamanlı olarak görünür. Cloud Shell'de tek bir terminalle sınırlı olduğunuzdan Temel Araçlar'ı (func.exe) arka plan işleminde çalıştırmanız gerekir.
İşlevler konağını arka planda sessizce başlatmak için aşağıdaki komutu çalıştırın.
func start &> ~/output.txt &
gibi
func new
Cloud Shell de dizinindeloan-wizard
olmalıdır.İşlevler konağı şimdi çıktısını ~/output.txt dosyasına yazıyor. Komut satırı çalışırken kullanmaya devam edebilirsiniz.
İşlemin
ps
çalıştığını doğrulamakfunc
için komutunu kullanın.Çıkış günlüğünü görüntülemek için aşağıdaki komutu girin.
code ~/output.txt
Çıktıda, hem GET hem de POST HTTP isteği
http://localhost:7071/api/simple-interest
olarak listelendiğiniFunctions: simple-interest:
belirten bir ileti görürsünüz.Not
Bir hata iletisi görürseniz konağı durdurmak için Ctrl+C'yi seçin. Kod dosyanızın içeriğinin örnekle aynı olduğundan emin olun.
Bu localhost URL'si web'de yayımlanmaz, yalnızca Cloud Shell oturumunuzda çalışan araçlardan erişilebilir.
Ctrl+Q'yi seçerek düzenleyiciyi kapatın.
Yerel olarak çalışan işlevinize HTTP GET isteği göndermek için aşağıdaki komutu çalıştırın.
curl "http://localhost:7071/api/simple-interest" -w "\n"
çıktısı,
Please supply principal, rate and term in the query string
işlevimizin başarıyla çağrıldığı ve yanıt döndürebildiğini ancak istediğiniz gibi çağırılmadığını gösterir. PARAMETRELERI HTTP isteğinin bir parçası olarak sağlamanız gerekir.İşlevi yeniden çağırın. Bu kez, sorgu dizesi parametrelerinin her biri için bir değer sağlayın.
curl "http://localhost:7071/api/simple-interest?principal=5000&rate=.035&term=36" -w "\n"
Bu kez çıkış olur
6300
. İşleviniz beklendiği gibi çalışıyor!Çıkış günlüğünü yeniden görüntülemek için aşağıdaki komutu girin.
code ~/output.txt
Başlangıç günlüğü girdilerinden sonra, işlevini ile
curl
her çağırdığınızda için zaman damgası eklenmiş bir günlük girdisi kümesi eklendiğini görürsünüz:[2024-02-20T06:25:56.700Z] Executing 'Functions.simple-interest' (Reason='This function was programmatically called via the host APIs.', Id=5daf20c3-f204-41bb-a5b9-021acaf17c04) [2024-02-20T06:25:56.893Z] Executed 'Functions.simple-interest' (Succeeded, Id=5daf20c3-f204-41bb-a5b9-021acaf17c04, Duration=228ms)
Ctrl+Q'yi seçerek düzenleyiciyi kapatın.