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
indanout - Beberapa pengikatan mendukung arah khusus
inout. Jika Anda menggunakaninout, 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
- Ekspresi dan pola pengikatan
- Menggunakan nilai yang dikembalikan dari Azure Function
- Cara mendaftarkan ekspresi pengikatan
- Pengujian:
- Menangani kesalahan pengikatan