Konsep pemicu dan pengikatan Azure Functions

Dalam artikel ini, Anda mempelajari konsep tingkat tinggi seputar pemicu dan pengikatan fungsi.

Pemicu menyebabkan suatu fungsi berjalan. Pemicu menentukan bagaimana fungsi dipanggil dan fungsi harus memiliki tepat satu pemicu. Pemicu memiliki data terkait yang sering diberikan sebagai payload fungsi.

Pengikatan ke fungsi adalah cara untuk menyambungkan sumber daya lain secara deklaratif ke fungsi tersebut; pengikatan dapat disambungkan sebagai pengikatan input, pengikatan output, atau keduanya. Data dari pengikatan diberikan ke fungsi sebagai parameter.

Anda dapat mencampur dan mencocokkan pengikatan yang berbeda untuk menyesuaikan dengan kebutuhan Anda. Pengikatan bersifat opsional dan fungsi mungkin memiliki satu atau beberapa pengikatan input dan/atau output.

Pemicu dan pengikatan memungkinkan Anda menghindari akses hardcoding ke layanan lain. Fungsi Anda menerima data (misalnya, konten pesan antrean) dalam parameter fungsi. Anda mengirim data (misalnya, untuk membuat pesan antrean) dengan menggunakan nilai yang dikembalikan dari fungsi.

Pertimbangkan contoh berikut tentang bagaimana Anda dapat mengimplementasikan fungsi yang berbeda.

Contoh skenario Pemicu Pengikatan input Pengikatan output
Pesan antrean baru datang yang menjalankan fungsi untuk menulis ke antrean lain. Antrean* Tidak ada Antrean*
Pekerjaan terjadwal membaca konten Blob Storage dan membuat dokumen Cosmos DB baru. Timer Penyimpanan Blob Cosmos DB
Event Grid digunakan untuk membaca gambar dari Blob Storage dan dokumen dari Cosmos DB untuk mengirim email. Event Grid Penyimpanan Blob dan Cosmos DB SendGrid
Webhook yang menggunakan Microsoft Graph untuk memperbarui lembar Excel. HTTP Tidak ada Microsoft Graph

* Mewakili antrean yang berbeda

Contoh-contoh ini tidak dimaksudkan sebagai contoh lengkap, tetapi disediakan untuk mengilustrasikan bagaimana Anda dapat menggunakan pemicu dan pengikatan bersama-sama.

Penentuan pemicu dan pengikatan

Pemicu dan pengikatan ditentukan secara berbeda bergantung pada bahasa pengembangan.

Bahasa Pemicu dan pengikatan dikonfigurasi oleh...
Pustaka kelas C#      mendekorasi metode dan parameter dengan atribut C#
Java      mendekorasi metode dan parameter dengan anotasi Java
JavaScript/PowerShell/Python/TypeScript      memperbarui function.json (skema)

Untuk bahasa yang mengandalkan function.js, portal memberikan UI untuk menambahkan pengikatan di tab Integrasi. Anda juga dapat mengedit file langsung di portal di tab Kode + pengujian fungsi Anda. Visual Studio Code memungkinkan Anda dengan mudah menambahkan pengikatan ke file function.json dengan mengikuti set permintaan yang mudah digunakan.

Dalam .NET dan Java, jenis parameter menentukan jenis data untuk data input. Misalnya, gunakan string untuk mengikat teks pemicu antrean, larik byte untuk dibaca sebagai biner, dan jenis kustom untuk membatalkan serialisasi ke objek. Karena fungsi pustaka kelas .NET dan fungsi Java tidak bergantung pada function.json untuk penentuan pengikatan, mereka tidak dapat dibuat dan diedit di portal. Pengeditan portal C# didasarkan pada skrip C#, yang menggunakan function.json, bukan dengan atribut.

Untuk mempelajari selengkapnya tentang cara menambahkan pengikatan ke fungsi yang ada, lihat Menyambungkan fungsi ke layanan Azure menggunakan pengikatan.

Untuk bahasa yang diketik secara dinamis seperti JavaScript, gunakan properti dataType di file function.json. Misalnya, untuk membaca konten permintaan HTTP dalam format biner, atur dataType ke binary:

{
    "dataType": "binary",
    "type": "httpTrigger",
    "name": "req",
    "direction": "in"
}

Opsi lain untuk dataType adalah stream dan string.

Arah pengikatan

Semua pemicu dan pengikatan memiliki properti direction dalam file function.json:

  • Untuk pemicu, arahnya selalu in
  • Pengikatan input dan output menggunakan in dan out
  • Beberapa pengikatan mendukung arah khusus inout. Jika Anda menggunakan inout, hanya editor Tingkat Lanjut yang tersedia melalui tab Integrasikan di portal.

Saat Anda menggunakan atribut di pustaka kelas untuk mengonfigurasi pemicu dan pengikatan, arahnya diberikan di konstruktor atribut atau disimpulkan dari jenis parameter.

Menambahkan pengikatan ke fungsi

Anda dapat menyambungkan fungsi ke layanan lain dengan menggunakan pengikatan input atau output. Tambahkan pengikatan dengan menambahkan definisi khususnya ke fungsi Anda. Untuk mempelajari caranya, lihat Menambahkan pengikatan ke fungsi yang ada di Azure Functions.

Pengikatan yang didukung

Tabel ini memperlihatkan pengikatan yang didukung di versi utama runtime Azure Functions:

Jenis 1.x 2.x dan lebih tinggi1 Pemicu Input Output
Penyimpanan Blob
Azure Cosmos DB
Azure SQL (pratinjau)
Dapr3
Event Grid
Event Hubs
HTTP & webhooks
IoT Hub
Kafka2
Aplikasi Seluler
Notification Hubs
Antrean Penyimpanan
RabbitMQ2
SendGrid
Service Bus
SignalR
Penyimpanan Tabel
Timer
Twilio

1 Dimulai dengan runtime versi 2.x, semua pengikatan kecuali HTTP dan Timer harus didaftarkan. Lihat Mendaftarkan ekstensi pengikatan.

2 Pemicu tidak didukung dalam paket Konsumsi. Memerlukan pemicu yang digerakkan oleh runtime.

3 Hanya didukung di Kube, Azure IoT Edge, dan mode yang dihosting sendiri lainnya.

Untuk informasi tentang pengikatan mana yang ada dalam pratinjau atau disetujui untuk penggunaan produksi, lihat Bahasa yang didukung.

Contoh kode pengikatan

Gunakan tabel berikut untuk menemukan contoh jenis pengikatan khusus yang menunjukkan cara bekerja dengan pengikatan dalam fungsi Anda. Pertama, pilih tab bahasa yang sesuai dengan proyek Anda.

Layanan Contoh Sampel
Penyimpanan Blob Pemicu
Input
Output
Tautan
Azure Cosmos DB Pemicu
Input
Output
Tautan
Azure SQL (pratinjau) Input
Output
Tautan
Event Grid Pemicu
Output
Tautan
Event Hubs Pemicu
Output
IoT Hub Pemicu
Output
HTTP Pemicu Tautan
Penyimpanan antrean Pemicu
Output
Tautan
RabbitMQ Pemicu
Output
SendGrid Output
Service Bus Pemicu
Output
Tautan
SignalR Pemicu
Input
Output
Penyimpanan tabel Input
Output
Timer Pemicu Tautan
Twilio Output Tautan

Pengikatan kustom

Anda dapat membuat pengikatan input dan output kustom. Pengikatan harus dibuat dalam .NET, tetapi dapat digunakan dari bahasa apa pun yang didukung. Untuk informasi selengkapnya tentang membuat pengikatan kustom, lihat Membuat pengikatan input dan output kustom.

Sumber

Langkah berikutnya