Azure Functions memicu dan mengikat konsep
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 masukan | Pengikatan output |
---|---|---|---|
Pesan antrean baru datang yang menjalankan fungsi untuk menulis ke antrean lain. | Antrean* | Tidak | Antrean* |
Pekerjaan terjadwal membaca konten Blob Storage dan membuat dokumen Azure Cosmos DB baru. | Pengatur Waktu | Penyimpanan Blob | Azure Cosmos DB |
Event Grid digunakan untuk membaca gambar dari Blob Storage dan dokumen dari Azure Cosmos DB untuk mengirim email. | Event Grid | Blob Storage dan Azure Cosmos DB | SendGrid |
Webhook yang menggunakan Microsoft Graph untuk memperbarui lembar Excel. | HTTP | Tidak | 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.json, portal menyediakan UI untuk menambahkan pengikatan di tab Integrasi. Anda juga dapat mengedit file secara langsung di portal di tab Kode + uji 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
danout
- Beberapa pengikatan mendukung arah khusus
inout
. Jika Anda menggunakaninout
, hanya Penyunting 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.x1 | 2.x dan lebih tinggi2 | Pemicu | Input | Output |
---|---|---|---|---|---|
Penyimpanan Blob | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Data Explorer | ✔ | ✔ | ✔ | ||
Azure SQL | ✔ | ✔ | ✔ | ✔ | |
Dapr4 | ✔ | ✔ | ✔ | ✔ | |
Event Grid | ✔ | ✔ | ✔ | ✔ | |
Event Hubs | ✔ | ✔ | ✔ | ✔ | |
HTTP & webhook | ✔ | ✔ | ✔ | ✔ | |
Pusat IoT | ✔ | ✔ | ✔ | ||
Kafka3 | ✔ | ✔ | ✔ | ||
Aplikasi Seluler | ✔ | ✔ | ✔ | ||
Notification Hubs | ✔ | ✔ | |||
Antrean Penyimpanan | ✔ | ✔ | ✔ | ✔ | |
Redis | ✔ | ✔ | |||
RabbitMQ3 | ✔ | ✔ | ✔ | ||
SendGrid | ✔ | ✔ | ✔ | ||
Service Bus | ✔ | ✔ | ✔ | ✔ | |
SignalR | ✔ | ✔ | ✔ | ✔ | |
Penyimpanan Tabel | ✔ | ✔ | ✔ | ✔ | |
Timer | ✔ | ✔ | ✔ | ||
Twilio | ✔ | ✔ | ✔ |
1 Dukungan akan berakhir untuk runtime Azure Functions versi 1.x pada 14 September 2026. Kami sangat menyarankan Agar Anda memigrasikan aplikasi Anda ke versi 4.x untuk dukungan penuh.
2 Dimulai dengan runtime versi 2.x, semua pengikatan kecuali HTTP dan Timer harus didaftarkan. Lihat Mendaftarkan ekstensi pengikatan.
3 Pemicu tidak didukung dalam paket Konsumsi. Memerlukan pemicu yang digerakkan oleh runtime.
4 Hanya didukung di Kubernetes, IoT Edge, dan mode yang dihost sendiri lainnya saja.
Untuk informasi tentang pengikatan mana yang ada dalam pratinjau atau disetujui untuk penggunaan produksi, lihat Bahasa yang didukung.
Versi ekstensi pengikatan tertentu hanya didukung saat SDK layanan yang mendasar didukung. Perubahan pada dukungan dalam versi SDK layanan yang mendasar memengaruhi dukungan untuk ekstensi yang menggunakan.
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.
Kode pengikatan untuk C# tergantung pada model proses tertentu.
Layanan | Contoh | Sampel |
---|---|---|
Penyimpanan Blob | Pemicu Input Hasil |
Tautan |
Azure Cosmos DB | Pemicu Input Hasil |
Tautan |
Azure Data Explorer | Input Hasil |
Tautan |
Azure SQL | Pemicu Input Hasil |
Tautan |
Event Grid | Pemicu Hasil |
Tautan |
Event Hubs | Pemicu Hasil |
|
IoT Hub | Pemicu Hasil |
|
HTTP | Pemicu | Tautan |
Antrean Penyimpanan | Pemicu Hasil |
Tautan |
RabbitMQ | Pemicu Hasil |
|
SendGrid | Hasil | |
Service Bus | Pemicu Hasil |
Tautan |
SignalR | Pemicu Input Hasil |
|
Penyimpanan Tabel | Input Hasil |
|
Pengatur Waktu | Pemicu | Tautan |
Twilio | Hasil | Tautan |
Layanan | Contoh | Sampel |
---|---|---|
Penyimpanan Blob | Pemicu Input Hasil |
Tautan |
Azure Cosmos DB | Pemicu Input Hasil |
Tautan |
Azure Data Explorer | Input Hasil |
Tautan |
Azure SQL | Pemicu Input Hasil |
|
Event Grid | Pemicu Hasil |
Tautan |
Event Hubs | Pemicu Hasil |
|
IoT Hub | Pemicu Hasil |
|
HTTP | Pemicu | Tautan |
Antrean Penyimpanan | Pemicu Hasil |
Tautan |
RabbitMQ | Pemicu Hasil |
|
SendGrid | Hasil | |
Service Bus | Pemicu Hasil |
Tautan |
SignalR | Pemicu Input Hasil |
|
Penyimpanan Tabel | Input Hasil |
|
Pengatur Waktu | Pemicu | Tautan |
Twilio | Hasil | Tautan |
Layanan | Contoh | Sampel |
---|---|---|
Penyimpanan Blob | Pemicu Input Hasil |
Tautan |
Azure Cosmos DB | Pemicu Input Hasil |
Tautan |
Azure Data Explorer | Input Hasil |
|
Azure SQL | Pemicu Input Hasil |
Tautan |
Event Grid | Pemicu Hasil |
Tautan |
Event Hubs | Pemicu Hasil |
|
IoT Hub | Pemicu Hasil |
|
HTTP | Pemicu | Tautan |
Antrean Penyimpanan | Pemicu Hasil |
Tautan |
RabbitMQ | Pemicu Hasil |
|
SendGrid | Hasil | |
Service Bus | Pemicu Hasil |
Tautan |
SignalR | Pemicu Input Hasil |
|
Penyimpanan Tabel | Input Hasil |
|
Pengatur Waktu | Pemicu | Tautan |
Twilio | Hasil | Tautan |
Layanan | Contoh | Sampel |
---|---|---|
Penyimpanan Blob | Pemicu Input Hasil |
Tautan |
Azure Cosmos DB | Pemicu Input Hasil |
Tautan |
Azure SQL | Pemicu Input Hasil |
|
Event Grid | Pemicu Hasil |
Tautan |
Event Hubs | Pemicu Hasil |
|
IoT Hub | Pemicu Hasil |
|
HTTP | Pemicu | Tautan |
Antrean Penyimpanan | Pemicu Hasil |
Tautan |
RabbitMQ | Pemicu Hasil |
|
SendGrid | Hasil | |
Service Bus | Pemicu Hasil |
Tautan |
SignalR | Pemicu Input Hasil |
|
Penyimpanan Tabel | Input Hasil |
|
Pengatur Waktu | Pemicu | Tautan |
Twilio | Hasil | Tautan |
Kode pengikatan untuk Python tergantung pada versi model Python.
Layanan | Contoh | Sampel |
---|---|---|
Penyimpanan Blob | Pemicu Input Hasil |
Tautan |
Azure Cosmos DB | Pemicu Input Hasil |
Tautan |
Azure Data Explorer | Input Hasil |
|
Azure SQL | Pemicu Input Hasil |
Tautan |
Event Grid | Pemicu Hasil |
Tautan |
Event Hubs | Pemicu Hasil |
|
IoT Hub | Pemicu Hasil |
|
HTTP | Pemicu | Tautan |
Antrean Penyimpanan | Pemicu Hasil |
Tautan |
RabbitMQ | Pemicu Hasil |
|
SendGrid | Hasil | |
Service Bus | Pemicu Hasil |
Tautan |
SignalR | Pemicu Input Hasil |
|
Penyimpanan Tabel | Input Hasil |
|
Pengatur Waktu | Pemicu | Tautan |
Twilio | Hasil | 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