Azure İşlevleri tetikleyicileri ve bağlama kavramları
Bu makalede, işlevlerin tetikleyicilerini ve bağlamalarını çevreleyen üst düzey kavramları öğreneceksiniz.
Tetikleyiciler bir işlevin çalışmasına neden olur. Tetikleyici bir işlevin nasıl çağrılacağını tanımlar ve işlevin tam olarak bir tetikleyicisi olmalıdır. Tetikleyiciler, genellikle işlevin yükü olarak sağlanan ilgili verilere sahiptir.
İşleve bağlama, başka bir kaynağı işleve bildirimli olarak bağlamanın bir yoludur; bağlamaları giriş bağlamaları, çıkış bağlamaları veya her ikisi olarak 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 sabit kodlama erişiminden kaçınmanıza olanak 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ğinize ilişkin aşağıdaki örnekleri göz önünde bulundurun.
Örnek senaryo | Tetikle | Giriş bağlaması | Çıkış bağlaması |
---|---|---|---|
Başka bir kuyruğa yazmak için bir işlev çalıştıran yeni bir kuyruk iletisi gelir. | Sıra* | Hiçbiri | Sıra* |
Zamanlanmış bir iş Blob Depolama içeriğini okur ve yeni bir Azure Cosmos DB belgesi oluşturur. | Zamanlayıcı | Blob Depolama | Azure Cosmos DB |
Event Grid, Blob Depolama'dan bir görüntüyü ve e-posta göndermek için Azure Cosmos DB'den bir belgeyi okumak için kullanılır. | Event Grid | Blob Depolama ve Azure 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çlanmamıştır, ancak tetikleyicileri ve bağlamaları birlikte nasıl kullanabileceğinizi göstermek için sağlanır.
Tetikleyici ve bağlama tanımları
Tetikleyiciler ve bağlamalar geliştirme diline bağlı olarak farklı şekilde tanımlanır.
Dil | Tetikleyiciler ve bağlamalar... |
---|---|
C# sınıf kitaplığı | C# öznitelikleriyle yöntemleri ve parametreleri süsleme |
Java | Java ek açıklamalarıyla yöntemleri ve parametreleri süsleme |
JavaScript/PowerShell/Python/TypeScript | function.json güncelleştirme (şema) |
portal, function.json kullanan diller için Tümleştirme sekmesinde bağlama eklemeye yönelik bir kullanıcı arabirimi sağlar. Ayrıca, dosyayı doğrudan portalda işlevinizin Kod + test sekmesinde düzenleyebilirsiniz. Visual Studio Code, uygun bir dizi istem izleyerek function.json dosyasına kolayca bağlama eklemenizi sağlar.
.NET ve Java'da parametre türü, giriş verileri için veri türünü tanımlar. Örneğin, kuyruk tetikleyicisinin metnine bağlanmak için kullanın string
, ikili olarak okunacak bir bayt dizisi ve bir nesneye seri durumdan çıkarmak için özel bir tür kullanın. .NET sınıf kitaplığı işlevleri ve Java işlevleri bağlama tanımları için function.json güvenmediğinden portalda oluşturulamaz ve düzenlenemez. C# portalı düzenleme, öznitelikler yerine function.json 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 function.json dosyasındaki özelliğini kullanındataType
. Örneğin, bir HTTP isteğinin içeriğini ikili biçimde okumak için olarak binary
ayarlayındataType
:
{
"dataType": "binary",
"type": "httpTrigger",
"name": "req",
"direction": "in"
}
için dataType
diğer seçenekler ve'dir stream
string
.
Bağlama yönü
Tüm tetikleyicilerin ve bağlamaların function.json dosyasında bir direction
özelliği vardır:
- Tetikleyiciler için yön her zaman
in
- Giriş ve çıkış bağlamaları ve kullanır
in
out
- Bazı bağlamalar özel bir yönü
inout
destekler. kullanıyorsanızinout
, portaldaki Tümleştir sekmesi aracılığıyla yalnızca Gelişmiş düzenleyici kullanılabilir.
Tetikleyicileri ve bağlamaları yapılandırmak için sınıf kitaplığında öznitelikler kullandığınızda, yön bir öznitelik oluşturucusunda sağlanır veya parametre türünden çıkarılır.
İşleve bağlama ekleme
Giriş veya çıkış bağlamalarını kullanarak işlevinizi diğer hizmetlere bağlayabilirsiniz. İşlevinize belirli tanımlarını ekleyerek bağlama ekleyin. Nasıl yapılacağını öğrenmek için bkz. Azure İşlevleri'da var olan bir işleve bağlama ekleme.
Desteklenen bağlamalar
Bu tabloda, Azure İşlevleri çalışma zamanının ana sürümlerinde desteklenen bağlamalar gösterilmektedir:
Tür | 1.x1 | 2.x ve üzeri2 | Tetikle | Girdi | Çıktı |
---|---|---|---|---|---|
Blob depolama | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Veri Gezgini | ✔ | ✔ | ✔ | ||
Azure SQL | ✔ | ✔ | ✔ | ✔ | |
Dapr4 | ✔ | ✔ | ✔ | ✔ | |
Event Grid | ✔ | ✔ | ✔ | ✔ | |
Event Hubs | ✔ | ✔ | ✔ | ✔ | |
HTTP & web kancaları | ✔ | ✔ | ✔ | ✔ | |
IoT Hub | ✔ | ✔ | ✔ | ||
Kafka3 | ✔ | ✔ | ✔ | ||
Mobile Apps | ✔ | ✔ | ✔ | ||
Notification Hubs | ✔ | ✔ | |||
Kuyruk depolama | ✔ | ✔ | ✔ | ✔ | |
Redis | ✔ | ✔ | |||
RabbitMQ3 | ✔ | ✔ | ✔ | ||
SendGrid | ✔ | ✔ | ✔ | ||
Service Bus | ✔ | ✔ | ✔ | ✔ | |
SignalR | ✔ | ✔ | ✔ | ✔ | |
Tablo depolama | ✔ | ✔ | ✔ | ✔ | |
Zamanlayıcı | ✔ | ✔ | ✔ | ||
Twilio | ✔ | ✔ | ✔ |
1 14 Eylül 2026'da Azure İşlevleri çalışma zamanının 1.x sürümü için destek sona erecektir. Tam destek için uygulamalarınızı 4.x sürümüne geçirmenizi kesinlikle öneririz.
2 Sürüm 2.x çalışma zamanından itibaren HTTP ve Zamanlayıcı dışındaki tüm bağlamaların kaydedilmesi gerekir. Bkz . Bağlama uzantılarını kaydetme.
3 Tetikleyiciler Tüketim planında desteklenmez. Çalışma zamanı temelli tetikleyiciler gerektirir.
4 Yalnızca Kubernetes, IoT Edge ve diğer şirket içinde barındırılan modlarda desteklenir.
Hangi bağlamaların önizleme aşamasında olduğu veya üretim kullanımı için onaylandığı hakkında bilgi için bkz . Desteklenen diller.
Belirli bağlama uzantısı sürümleri yalnızca temel alınan hizmet SDK'sı desteklenirken desteklenir. Temel alınan hizmet SDK'sı sürümünde yapılan destek değişiklikleri, tüketen uzantı desteğini etkiler.
Bağlama kodu örnekleri
İşlevlerinizdeki bağlamalarla 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.
C# için bağlama kodu, belirli işlem modeline bağlıdır.
Hizmet | Örnekler | Örnekler |
---|---|---|
Blob depolama | Tetikleyici Girdi Çıktı |
Bağlantı |
Azure Cosmos DB | Tetikleyici Girdi Çıktı |
Bağlantı |
Azure Veri Gezgini | Girdi Çıktı |
Bağlantı |
Azure SQL | Tetikleyici Girdi Çı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 Girdi Çıktı |
|
Tablo depolama | Girdi Çıktı |
|
Zamanlayıcı | Tetikleyici | Bağlantı |
Twilio | Çıktı | Bağlantı |
Hizmet | Örnekler | Örnekler |
---|---|---|
Blob depolama | Tetikleyici Girdi Çıktı |
Bağlantı |
Azure Cosmos DB | Tetikleyici Girdi Çıktı |
Bağlantı |
Azure Veri Gezgini | Girdi Çıktı |
Bağlantı |
Azure SQL | Tetikleyici Girdi Çıktı |
|
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 Girdi Çıktı |
|
Tablo depolama | Girdi Çıktı |
|
Zamanlayıcı | Tetikleyici | Bağlantı |
Twilio | Çıktı | Bağlantı |
Hizmet | Örnekler | Örnekler |
---|---|---|
Blob depolama | Tetikleyici Girdi Çıktı |
Bağlantı |
Azure Cosmos DB | Tetikleyici Girdi Çıktı |
Bağlantı |
Azure Veri Gezgini | Girdi Çıktı |
|
Azure SQL | Tetikleyici Girdi Çı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 Girdi Çıktı |
|
Tablo depolama | Girdi Çıktı |
|
Zamanlayıcı | Tetikleyici | Bağlantı |
Twilio | Çıktı | Bağlantı |
Hizmet | Örnekler | Örnekler |
---|---|---|
Blob depolama | Tetikleyici Girdi Çıktı |
Bağlantı |
Azure Cosmos DB | Tetikleyici Girdi Çıktı |
Bağlantı |
Azure SQL | Tetikleyici Girdi Çıktı |
|
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 Girdi Çıktı |
|
Tablo depolama | Girdi Çıktı |
|
Zamanlayıcı | Tetikleyici | Bağlantı |
Twilio | Çıktı | Bağlantı |
Python için bağlama kodu, Python modeli sürümüne bağlıdır.
Hizmet | Örnekler | Örnekler |
---|---|---|
Blob depolama | Tetikleyici Girdi Çıktı |
Bağlantı |
Azure Cosmos DB | Tetikleyici Girdi Çıktı |
Bağlantı |
Azure Veri Gezgini | Girdi Çıktı |
|
Azure SQL | Tetikleyici Girdi Çı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 Girdi Çıktı |
|
Tablo depolama | Girdi Çıktı |
|
Zamanlayıcı | Tetikleyici | Bağlantı |
Twilio | Çıktı | Bağlantı |
Özel bağlamalar
Özel giriş ve çıkış bağlamaları oluşturabilirsiniz. Bağlamaların .NET'te yazılması gerekir, ancak desteklenen herhangi bir dilden kullanılabilir. Özel bağlamalar oluşturma hakkında daha fazla bilgi için bkz . Özel giriş ve çıkış bağlamaları oluşturma.
Kaynaklar
- İfadeleri ve desenleri bağlama
- Azure İşlevi dönüş değerini kullanma
- Bağlama ifadesini kaydetme
- Test etme:
- Bağlama hatalarını işleme