Azure İşlevleri tetikleyicileri ve bağlama kavramları
Bu makalede, işlev Tetikleyicileri ve bağlamaları çevreleyen üst düzey kavramlar öğrenirsiniz.
Tetikleyiciler, bir işlevin çalışmasına neden olur. Bir tetikleyici, bir işlevin nasıl çağrılacağını ve bir işlevin tam olarak bir tetikleyicisine sahip olması gerektiğini tanımlar. Tetikleyiciler, genellikle işlevin yükü olarak sağlanan ilgili verilere sahiptir.
İşleve bağlama, başka bir kaynağı işleve bildirimli olarak bağlama yöntemidir; bağlamalar, Giriş bağlamaları, Çıkış bağlamaları veya her ikisi için de bağlanabilir. Bağlamalardan alınan veriler işleve parametre olarak sağlanır.
İhtiyaçlarınıza göre farklı bağlama türlerini bir arada kullanabilirsiniz. Bağlamalar isteğe bağlıdır ve bir işlevde bir veya daha fazla giriş ve/veya çıkış bağlaması bulunabilir.
Tetikleyiciler ve bağlamalar, diğer hizmetlere erişimi bir şekilde kodlamadan kaçınmanızı sağlar. İşleviniz verileri (bir kuyruk iletisinin içeriği gibi) işlev parametreleriyle alır. Verileri göndermek (bir kuyruk iletisi oluşturmak gibi) için işlevin dönüş değerini kullanırsınız.
Farklı işlevleri nasıl uygulayabileceğinizi gösteren aşağıdaki örnekleri göz önünde bulundurun.
| Örnek senaryo | Tetikleyici | Giriş bağlama | Çıkış bağlama |
|---|---|---|---|
| Başka bir kuyruğa yazmak için bir işlev çalıştıran yeni bir kuyruk iletisi ulaştı. | Sıradaki* | Hiçbiri | Sıradaki* |
| Zamanlanan bir iş BLOB depolama içeriğini okur ve yeni bir Cosmos DB belgesi oluşturur. | Zamanlayıcı | Blob Depolama | Cosmos DB |
| Event Grid, blob depolamadan bir görüntüyü okumak için ve Cosmos DB bir e-posta göndermek için kullanılır. | Event Grid | BLOB depolama ve Cosmos DB | SendGrid |
| Excel sayfasını güncelleştirmek için Microsoft Graph kullanan bir Web kancası. | HTTP | Hiçbiri | Microsoft Graph |
* Farklı kuyrukları temsil eder
Bu örneklerin kapsamlı olması amaçlıyordu, ancak Tetikleyicileri ve bağlamaları birlikte nasıl kullanabileceğinizi göstermek için sağlanmıştır.
Tanımları tetikleme ve bağlama
Tetikleyiciler ve bağlamalar, geliştirme diline bağlı olarak farklı şekilde tanımlanır.
| Dil | Tetikleyiciler ve bağlamalar tarafından yapılandırılır... |
|---|---|
| C# sınıf kitaplığı | C# öznitelikleriyle yöntemleri ve parametreleri dekorasyon |
| Java | Java ek açıklamalarıyla yöntemleri ve parametreleri dekorasyon |
| JavaScript/PowerShell/Python/TypeScript | function.js(şema) üzerinde güncelleştiriliyor |
Portal, function.jskullanan diller için tümleştirme sekmesinde bağlama eklemek üzere bir kullanıcı arabirimi sağlar. Ayrıca, işlevinizin Code + test sekmesinde dosyayı doğrudan portalda da düzenleyebilirsiniz. Visual Studio Code, uygun bir istem kümesini izleyerek dosya üzerinde bir function.jsbağlamayı kolayca eklemenizi sağlar.
.NET ve Java 'da parametre türü, giriş verileri için veri türünü tanımlar. Örneğin, string bir kuyruk tetikleyicisinin metnini, ikili olarak okunacak bir bayt dizisini ve bir nesneye seri hale getirmek için özel bir türü bağlamak için kullanın. .NET sınıf kitaplığı işlevleri ve Java işlevleri bağlama tanımları için function.js kullanmadığı için, portalda oluşturulup düzenlenemezler. C# Portal düzenlemesi, öznitelikleri yerine function.js kullanan c# betiğini temel alır.
Mevcut işlevlere bağlama ekleme hakkında daha fazla bilgi edinmek için bkz. bağlamaları kullanarak Işlevleri Azure hizmetlerine bağlama.
JavaScript gibi dinamik olarak yazılan diller için, dataType dosyadaki function.js özelliğini kullanın. Örneğin, bir HTTP isteğinin içeriğini ikili biçimde okumak için şu dataType şekilde ayarlayın binary :
{
"dataType": "binary",
"type": "httpTrigger",
"name": "req",
"direction": "in"
}
İçin diğer seçenekler dataType stream ve ' dir string .
Bağlama yönü
Tüm tetikleyiciler ve bağlamalar direction dosyadaki function.js bir özelliğe sahiptir:
- Tetikleyiciler için, yön her zaman
in - Giriş ve çıkış bağlamaları kullanımı
inveout - Bazı bağlamalar özel bir yönü destekler
inout. Kullanıyorsanızinout, portalda tümleştir sekmesi aracılığıyla yalnızca Gelişmiş Düzenleyici kullanılabilir.
Tetikleyicileri ve bağlamaları yapılandırmak için bir sınıf kitaplığındaki öznitelikleri kullandığınızda, yön bir öznitelik oluşturucusunda sağlanır veya parametre türünden çıkartılan olur.
Bir işleve bağlama ekleme
Giriş veya çıkış bağlamalarını kullanarak işlevinizi diğer hizmetlere bağlayabilirsiniz. Kendi özel tanımlarını işlevlerinize ekleyerek bir bağlama ekleyin. Nasıl yapılacağını öğrenmek için bkz. Azure işlevlerinde mevcut bir işleve bağlama ekleme.
Desteklenen bağlamalar
Bu tabloda, çalışma zamanının ana sürümlerinde desteklenen bağlamalar Azure İşlevleri gösterir:
| Tür | 1.x | 2.x ve daha yüksek1 | Tetikleyici | Girdi | Çıktı |
|---|---|---|---|---|---|
| Blob depolama | ✔ | ✔ | ✔ | ✔ | ✔ |
| Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
| Azure SQL (önizleme) | ✔ | ✔ | ✔ | ||
| Dapr3 | ✔ | ✔ | ✔ | ✔ | |
| Event Grid | ✔ | ✔ | ✔ | ✔ | |
| Event Hubs | ✔ | ✔ | ✔ | ✔ | |
| HTTP & web kancaları | ✔ | ✔ | ✔ | ✔ | |
| IoT Hub’ı | ✔ | ✔ | ✔ | ✔ | |
| Kafka2 | ✔ | ✔ | ✔ | ||
| Mobile Apps | ✔ | ✔ | ✔ | ||
| Notification Hubs | ✔ | ✔ | |||
| Kuyruk depolama | ✔ | ✔ | ✔ | ✔ | |
| RabbitMQ2 | ✔ | ✔ | ✔ | ||
| SendGrid | ✔ | ✔ | ✔ | ||
| Service Bus | ✔ | ✔ | ✔ | ✔ | |
| SignalR | ✔ | ✔ | ✔ | ||
| Tablo depolama | ✔ | ✔ | ✔ | ✔ | |
| Zamanlayıcı | ✔ | ✔ | ✔ | ||
| Twilio | ✔ | ✔ | ✔ |
1 Sürüm 2.x çalışma zamanından başlayarak HTTP ve Zamanlayıcı dışındaki tüm bağlamaların kayıtlı olması gerekir. Bkz. Bağlama uzantılarını kaydetme.
2 Tetikleyiciler Tüketim planında desteklenmiyor. Çalışma zamanı odaklı tetikleyiciler gerektirir.
3 Yalnızca Kubernetes, IoT Edge ve diğer kendi kendine barındırılan modlarda destekler.
Önizleme aşamasında olan veya üretim kullanımı için onaylanan bağlamalar hakkında daha fazla bilgi için bkz. desteklenen diller.
Bağlama kodu örnekleri
İşlevlerinizin bağlamalarıyla nasıl çalışabileceğinizi gösteren belirli bağlama türlerinin örneklerini bulmak için aşağıdaki tabloyu kullanın. İlk olarak, projenize karşılık gelen dil sekmesini seçin.
| Hizmet | Örnekler | Örnekler |
|---|---|---|
| Blob depolama | Tetikleyici Giriş Çıktı |
Bağlantı |
| Azure Cosmos DB | Tetikleyici Giriş Çıktı |
Bağlantı |
| Event Grid | Tetikleyici Çıktı |
Bağlantı |
| Event Hubs | Tetikleyici Çıktı |
|
| IoT Hub | Tetikleyici Çıktı |
|
| HTTP | Tetikleyici | Bağlantı |
| Kuyruk depolama | Tetikleyici Çıktı |
Bağlantı |
| RabbitMQ | Tetikleyici Çıktı |
|
| SendGrid | Çıktı | |
| Service Bus | Tetikleyici Çıktı |
Bağlantı |
| SignalR | Tetikleyici Giriş Çıktı |
|
| Tablo depolama | Giriş Çıktı |
|
| Zamanlayıcı | Tetikleyici | Bağlantı |
| Twilio | Çıktı | Bağlantı |
Özel Bağlamalar
Özel giriş ve çıkış bağlamaları oluşturabilirsiniz. Bağlamalar .NET dilinde yazılmalıdır, ancak desteklenen herhangi bir dilden tüketilebilir. Özel Bağlamalar Oluşturma hakkında daha fazla bilgi için bkz. özel giriş ve çıkış bağlamaları oluşturma.
Kaynaklar
- Bağlama ifadeleri ve desenleri
- Azure Işlevi dönüş değerini kullanma
- Bağlama ifadesi kaydetme
- Edici
- Bağlama hatalarını işleme