Azure İşlevleri ile kodunuzu isteğe bağlı olarak çalıştırma
Artık bir işlev uygulaması oluşturduğumuza göre bir işlevin nasıl derlendiğini, yapılandırıldığını ve yürütüldüğünü inceleyelim. İşlevimizi bir sonraki alıştırmada yürüteceğiz, bu nedenle bu ünitede herhangi bir görevi tamamlamanız gerekmez.
Tetikleyiciler
İşlevler olay odaklıdır; başka bir deyişle bunlar bir olaya yanıt olarak çalıştırılır. bir işlevi başlatan olay türü tetikleyici olarak adlandırılır. Her işlev tam olarak bir tetikleyiciyle yapılandırılmalıdır.
Aşağıdaki Azure hizmetlerinden HTTP isteklerini, zamanlanmış zamanlayıcıyı ve olayları kullanarak işlev yürütmeyi tetikleyebilirsiniz:
| Azure Hizmeti | Tetikleyici açıklaması |
|---|---|
| Blob Depolama | Yeni veya güncel bir blob algılandığında işlev başlatır. |
| Azure Cosmos DB veritabanı | Eklemeler ve güncelleştirmeler algılandığında işlevi başlatın. |
| Etkinlik Ağı | Event Grid’den olay alındığında işlev başlatır. |
| Event Hubs | Event Hubs'tan bir olay alındığında bir işlev başlatır. |
| Kuyruk Depolama | Kuyruğa yeni bir öğe alındığında işlev başlatır. Kuyruk iletisi işleve giriş olarak sağlanır. |
| Hizmet Otobüsü | Service Bus kuyruğundan iletilere yanıt olarak işlev başlatır. |
Bağlamalar
Bağlama, verileri ve hizmetleri işlevinize bağlamanın bildirim temelli bir yoludur. Bağlamalar çeşitli veri kaynaklarıyla etkileşim kurar. Bu, veri kaynaklarına bağlanmak ve bağlantıları yönetmek için işlevinizde kodu yazmanız gerekmediği anlamına gelir. Bağlama kodunun bir parçası olarak bu karmaşık işlemle sizin için platform ilgilenir. Her bağlamanın bir yönü vardır: Kodunuz giriş bağlamalarından verileri okur ve çıkış bağlamalarına veri yazar. Her işlev, işleve göre işlenen giriş ve çıkış verilerini yönetmek için sıfır veya daha fazla bağlamaya sahip olabilir.
Tetikleyici, bir kodun yürütülmesini başlatabilen bir giriş bağlama türüdür.
Azure, farklı depolama ve mesajlaşma hizmetlerine bağlanmak için çok sayıda bağlama sağlar.
Örnek bağlama tanımlama
Şimdi giriş bağlaması (tetikleyici) ve çıkış bağlaması içeren bir işlev yapılandırma örneğine göz atalım. Azure Kuyruk Depolama'da her yeni ileti görüntülendiğinde Azure Tablo Depolama'ya yeni bir satır yazmak istediğimizi düşünelim. Bu senaryo bir Azure Kuyruk Depolama tetikleyicisi ve Azure Tablo depolama çıkış bağlaması kullanılarak uygulanabilir.
Aşağıdaki kod parçacığı, bu senaryo için function.json dosyasıdır.
{
"bindings": [
{
"name": "order",
"type": "queueTrigger",
"direction": "in",
"queueName": "myqueue-items",
"connection": "MY_STORAGE_ACCT_APP_SETTING"
},
{
"name": "$return",
"type": "table",
"direction": "out",
"tableName": "outTable",
"connection": "MY_TABLE_STORAGE_ACCT_APP_SETTING"
}
]
}
JSON yapılandırmamız myqueue-items adlı kuyruğa bir ileti eklendiğinde işlevimizin tetikleneceğini belirtir. İşlevimizin dönüş değeri daha sonra Azure Tablo depolamada outTable'a yazılır.
PowerShell işlevleri için çıkış bağlamaları Push-OutputBinding cmdlet'iyle açıkça yazılır.
Bu örnek işlev için bağlamaları nasıl yapılandırdığımızı basit bir şekilde gösterir. Çıkışı SendGrid bağlaması kullanan bir e-posta olarak değiştirebilir veya mimarimizdeki başka bir bileşene bildirmek için Service Bus'a bir olay koyabiliriz. Verileri çeşitli hizmetlere göndermek için birden çok çıkış bağlamamız bile olabilir.
İpucu
Azure portalında function.json içeriğini görüntülemek ve düzenlemek için Giriş sayfasında işlev uygulamanızı seçin ve bölmede JSON Görünümü'nü seçin. Kaynak JSON görünümünde Kaynak Kimliği ve düzenlenebilir JSON kodu görüntülenir. JSON görünümünü kapatmak için bölmenin sağ üst köşesindeki X işaretini seçin.
İşlevler tarafından desteklenen tüm diller, işlevleri tanımlamak için function.json dosyasını kullanmaz.
Azure portalında işlev oluşturma
Azure İşlevleri, belirli bir tetikleyici türünü temel alan önceden tanımlanmış işlev şablonlarına sahiptir. Seçtiğiniz dilde bu şablonlar, ilk işlevinizi oluşturmaya başlamanızı kolaylaştırır.
Bu modül İşlevler tarafından desteklenen tüm diller için desteklenmez ve portalın kendisi İşlevler tarafından desteklenen tüm dillerde işlev oluşturmayı desteklemez.
İşlevleri tanımlamak için function.json dosyasını kullanan desteklenen diller için, bu işlevleri doğrudan Azure portalında oluşturabilir ve düzenleyebilirsiniz. Portal tarafından desteklenen bu diller şunlardır: JavaScript, PowerShell, Python ve C# Betiği (.csx). İşlevleri doğrudan kodun içinde tanımlayan dillerin portalın dışında geliştirilmesi ve Azure'a dağıtılması gerekir. Bu desteklenmeyen diller şunlardır: C#, Java, Python (v2 programlama modeli) ve JavaScript/TypeScript (Node.js v4 programlama modeli).
İşlev şablonları
Portalda ilk işlevinizi oluşturduğunuzda, işleviniz için önceden tanımlanmış bir tetikleyici seçebilirsiniz. Seçimlerinize bağlı olarak Azure, giriş verileri alındığında olay günlüğü girişi oluşturma gibi varsayılan kod ve yapılandırma bilgilerini oluşturur.
İşlev ekle bölmesinden şablon seçmek en yaygın geliştirme ortamlarına, tetikleyicilere ve bağımlılıklara kolay erişim sağlar. Azure portalında bir işlev oluşturduğunuzda, 20'den fazla şablon arasından seçim yapabilirsiniz. Oluşturulduktan sonra kodu daha fazla özelleştirebilirsiniz.
İşlevinize ve dosyalarına gidin
Bir şablondan işlev oluşturduğunuzda, yapılandırma dosyası, function.jsonve kaynak kod dosyasıindex.jsdahil olmak üzere çeşitli dosyalar oluşturulur.
İşlev uygulaması menüsünden İşlevler kategorisinin altındaki İşlevler'i seçerek işlev uygulamanız için işlevler oluşturabilir veya düzenleyebilirsiniz.
İşlev uygulamanızda oluşturduğunuz bir işlevi seçtiğinizde İşlev bölmesi açılır. İşlev menüsünden Kod + Test'i seçerek, kodu test etmek ve çalıştırmak, yaptığınız değişiklikleri kaydetmek veya atmak ya da yayımlanan URL'yi almak için komut çubuğundaki eylemlere erişebilirsiniz. Komut çubuğundan Test/Çalıştır'ı seçerek, sorgu dizelerini ve değerlerini içeren istekler için kullanım örnekleri çalıştırabilirsiniz. İşlevin kod kutusunun üzerindeki yolu, açık olan dosyanın adını görüntüler. Test etmek veya düzenlemek için açılan listeden belirli bir dosyayı seçebilirsiniz, örneğin function.json.
Önceki görüntüde bölmede Giriş ve Çıkış sekmeleri vardır. Giriş sekmesini seçtiğinizde sorgu parametreleri ekleyip sorgu dizeniz için değerler sağlayarak işlevi derleyip test edebilirsiniz. Çıkış sekmesinde isteğin sonuçları görüntülenir.
Azure işlevinizi test etme
Portalda bir işlev oluşturduktan sonra bunu test etmek istersiniz. İki yaklaşım vardır:
- Portalda test etme
- El ile çalıştırma
Azure portalında test etme
Portalın işlevlerinizi test etmeniz için sunduğu kolay yöntemden de faydalanabilirsiniz. Ekran görüntüsünde daha önce açıklandığı gibi Bu bölmede Çalıştır'ı seçebilirsiniz. Sonuçlar Çıktı sekmesinde otomatik olarak görüntülenir ve günlükler bölmesi açılır ve durumu görüntüler.
İşlevi el ile çalıştırma
Bir işlevi, yapılandırdığınız tetikleyiciyi el ile tetikleyerek başlatabilirsiniz. Örneğin, http tetikleyicisi kullanıyorsanız, işlev uç noktası URL'nize http isteği başlatmak için şu HTTP test araçlarını kullanabilirsiniz:
- Visual Studio Code, Visual Studio Marketplace'ten bir uzantı ile
- Invoke-RestMethod
- Microsoft Edge - Ağ Konsolu aracı
- Bruno
- curl
Dikkat
Kimlik bilgileri, gizli diziler, erişim belirteçleri, API anahtarları ve diğer benzer bilgiler gibi hassas verileriniz olduğu senaryolar için verilerinizi koruyan bir araç kullandığınızdan emin olun. Çevrimdışı veya yerel olarak çalışan, verilerinizi bulutla eşitlemeyen ve çevrimiçi bir hesapta oturum açmanızı gerektirmeyen bir araç olan gerekli güvenlik özelliklerini ekleyin. Bu şekilde, hassas verileri herkese açık hale getirmekle ilgili riski azaltırsınız.
Portaldaki işlev tanımı sayfasından İşlev URL'sini al'ı seçerek HTTP tetikleyicisinin URL uç noktasını alabilirsiniz.
İzleme ve Application Insights panosu
İşlevlerinizi izleme özelliği, geliştirme sırasında ve üretimde çok önemlidir. Azure portalı, Application Insights tümleştirmesini etkinleştirerek etkinleştirdiğiniz bir izleme panosu sağlar. İşlev Uygulaması menüsünde, Ayarlar'ın altında Application Insights'ı seçin, Application Insights'ı aç'ı ve ardından Uygula'yı seçin. İletişim kutusunda Evet'i seçin. Application Insights panosu, Application Insights tarafından doldurulan zaman damgasını, sonuç kodunu, süreyi ve işlem kimliğini görüntüleyerek işlev işlemlerinin geçmişini görüntülemek için hızlı bir yol sağlar.
Akış günlükleri bölmesi
Azure portalında Application Insights'ı etkinleştirdikten sonra, hata ayıklama için işlevinize günlük deyimleri ekleyebilirsiniz. Her dil için çağrılan yöntemlere, test çalıştırırken Kod + Test bölmesindeki Günlükler bölmesine günlük bilgileri eklemek için kullanılabilen bir "günlük" nesnesi geçirilir.
İşleyiciye geçirilen nesnedeki logcontext yöntemini kullanarak kodunuzdaki günlüklere yazın. Aşağıdaki örnek varsayılan günlük düzeyine (bilgi) yazar:
context.log('Enter your logging statement here');
Aşağıdaki örnekte gösterildiği gibi cmdlet'ini Write-Host kullanarak kodunuzdaki günlüklere yazın:
Write-Host "Enter your logging statement here"
Hatalar, hatalar, uyarılar ve anomaliler
İşlev uygulamanızı yönetmek üzere performansı izlemek, hataları tanılamak veya onlarca önceden tanımlanmış çalışma kitabını yapılandırmak için İşlev menüsündeki Araştır kategorisindeki Ölçümleri veya seçenekleri kullanabilirsiniz. Koddaki derleme hatalarından ve uyarılarından role göre kullanım istatistiklerine kadar her şey.