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ı in ve out
  • Bazı bağlamalar özel bir yönü destekler inout . Kullanıyorsanız inout , 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

Sonraki adımlar