Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Gunakan pemicu RabbitMQ untuk menanggapi pesan dari antrean RabbitMQ.
Catatan
Pengikatan RabbitMQ hanya didukung penuh pada paket Elastic Premium dan Dedicated (App Service ). Paket Konsumsi dan Konsumsi Fleksibel belum didukung.
Pengikatan RabbitMQ tidak didukung oleh runtime Azure Functions v1.x.
Untuk informasi tentang pengaturan dan detail konfigurasi, lihat gambaran umum.
Contoh
Anda dapat membuat fungsi C# dengan menggunakan salah satu mode C# berikut:
- Model pekerja terisolasi: Fungsi C# terkompilasi yang berjalan dalam proses pekerja yang terisolasi dari runtime. Proses pekerja terisolasi diperlukan untuk mendukung fungsi C# yang berjalan pada versi dukungan jangka panjang (LTS) dan non-LTS untuk .NET dan .NET Framework.
- Model dalam proses: Fungsi C# terkompilasi yang berjalan dalam proses yang sama dengan runtime Azure Functions.
- Skrip C#: Digunakan terutama saat Anda membuat fungsi C# di portal Azure.
Penting
Dukungan akan berakhir untuk model dalam proses pada 10 November 2026. Kami sangat menyarankan Agar Anda memigrasikan aplikasi Anda ke model pekerja yang terisolasi untuk dukungan penuh.
[Function(nameof(RabbitMQFunction))]
[RabbitMQOutput(QueueName = "destinationQueue", ConnectionStringSetting = "RabbitMQConnection")]
public static string Run([RabbitMQTrigger("queue", ConnectionStringSetting = "RabbitMQConnection")] string item,
FunctionContext context)
{
var logger = context.GetLogger(nameof(RabbitMQFunction));
logger.LogInformation(item);
var message = $"Output message created at {DateTime.Now}";
return message;
}
Fungsi Java berikut menggunakan @RabbitMQTrigger anotasi dari jenis Java RabbitMQ untuk menjelaskan konfigurasi pemicu antrean RabbitMQ. Fungsi ini mengambil pesan yang ditempatkan pada antrean dan menambahkannya ke log.
@FunctionName("RabbitMQTriggerExample")
public void run(
@RabbitMQTrigger(connectionStringSetting = "rabbitMQConnectionAppSetting", queueName = "queue") String input,
final ExecutionContext context)
{
context.getLogger().info("Java HTTP trigger processed a request." + input);
}
Contoh berikut menunjukkan pengikatan pemicu RabbitMQ dalam file function.json dan fungsi JavaScript yang menggunakan pengikatan. Fungsi membaca dan mencatat pesan RabbitMQ.
Berikut data pengikatan dalam file function.json:
{
"bindings": [
{
"name": "myQueueItem",
"type": "rabbitMQTrigger",
"direction": "in",
"queueName": "queue",
"connectionStringSetting": "rabbitMQConnectionAppSetting"
}
]
}
Berikut kode JavaScript-nya:
module.exports = async function (context, myQueueItem) {
context.log('JavaScript RabbitMQ trigger function processed work item', myQueueItem);
};
Contoh berikut menunjukkan cara membaca pesan antrean RabbitMQ melalui pemicu.
Definisi pengikatan RabbitMQ ditentukan dalam function.json tempat jenis diatur ke RabbitMQTrigger.
{
"scriptFile": "__init__.py",
"bindings": [
{
"name": "myQueueItem",
"type": "rabbitMQTrigger",
"direction": "in",
"queueName": "queue",
"connectionStringSetting": "rabbitMQConnectionAppSetting"
}
]
}
import logging
import azure.functions as func
def main(myQueueItem) -> None:
logging.info('Python RabbitMQ trigger function processed a queue item: %s', myQueueItem)
Contoh PowerShell saat ini tidak tersedia.
Atribut
Baik proses pekerja terisolasi maupun pustaka C# dalam proses digunakan RabbitMQTriggerAttribute untuk menentukan fungsi, di mana properti atribut tertentu bergantung pada versi ekstensi.
Konstruktor atribut menerima parameter ini:
| Pengaturan | Deskripsi |
|---|---|
| QueueName | Nama antrean untuk menerima pesan. |
| HostName | Parameter ini tidak lagi didukung dan diabaikan. Ini akan dihapus dalam versi mendatang. |
| ConnectionStringSetting | Nama pengaturan aplikasi yang berisi string koneksi untuk server RabbitMQ Anda. Pengaturan ini hanya mengambil nama kunci pengaturan aplikasi, Anda tidak dapat langsung mengatur nilai string koneksi. Untuk informasi selengkapnya, lihat Koneksi. |
| Setelan NamaPengguna | Parameter ini tidak lagi didukung dan diabaikan. Ini akan dihapus dalam versi mendatang. |
| Pengaturan Kata Sandi | Parameter ini tidak lagi didukung dan diabaikan. Ini akan dihapus dalam versi mendatang. |
| Pelabuhan | Mendapatkan atau mengatur port yang digunakan. Defaultnya adalah 0, yang menunjuk ke pengaturan port default klien RabbitMQ 5672. |
Anotasi
Anotasi RabbitMQTrigger memungkinkan Anda membuat fungsi yang berjalan saat pesan RabbitMQ dibuat.
Anotasi tersebut mendukung opsi konfigurasi berikut:
| Pengaturan | Deskripsi |
|---|---|
| queueName | Nama antrean untuk menerima pesan. |
| connectionStringSetting | Nama pengaturan aplikasi yang berisi string koneksi untuk server RabbitMQ Anda. Pengaturan ini hanya mengambil nama kunci pengaturan aplikasi, Anda tidak dapat langsung mengatur nilai string koneksi. Untuk informasi selengkapnya, lihat Koneksi. |
| disableCertificateValidation | Nilai Boolean yang dapat diatur untuk true menunjukkan bahwa validasi sertifikat harus dinonaktifkan. Nilai defaultnya adalah false. Tidak disarankan untuk produksi. Tidak berlaku saat SSL dinonaktifkan. |
Konfigurasi
Tabel berikut menjelaskan properti konfigurasi pengikatan yang Anda atur di file function.json.
| Properti function.json | Deskripsi |
|---|---|
| jenis | Harus diatur ke RabbitMQTrigger. |
| arah | Harus diatur ke in. |
| nama | Nama variabel yang mewakili antrean dalam kode fungsi. |
| queueName | Nama antrean untuk menerima pesan. |
| connectionStringSetting | Nama pengaturan aplikasi yang berisi string koneksi untuk server RabbitMQ Anda. Pengaturan ini hanya mengambil nama kunci pengaturan aplikasi, Anda tidak dapat langsung mengatur nilai string koneksi. Untuk informasi selengkapnya, lihat Koneksi. |
| disableCertificateValidation | Nilai Boolean yang dapat diatur untuk true menunjukkan bahwa validasi sertifikat harus dinonaktifkan. Nilai defaultnya adalah false. Tidak disarankan untuk produksi. Tidak berlaku saat SSL dinonaktifkan. |
Ketika Anda mengembangkan secara lokal, tambahkan pengaturan aplikasi di file local.settings.json dalam koleksi Values.
Lihat Bagian contoh untuk contoh lengkapnya.
Penggunaan
Jenis parameter yang didukung oleh pemicu RabbitMQ bergantung pada modalitas C# yang digunakan.
Pengikatan RabbitMQ saat ini hanya mendukung string dan jenis objek serial ketika berjalan dalam proses terisolasi.
Pesan antrean tersedia melalui context.bindings.<NAME>, yang mana <NAME> cocok dengan nama yang ditentukan di function.json. Jika payload adalah JSON, nilai serinya dibatalkan menjadi objek.
Connections
Penting
Pengikatan RabbitMQ tidak mendukung autentikasi Microsoft Entra dan identitas terkelola. Anda dapat menggunakan Azure Key Vault untuk mengelola string koneksi RabbitMQ Anda secara terpusat. Untuk mempelajari selengkapnya, lihat Mengelola Koneksi.
Dimulai dengan ekstensi versi 2.x, hostName, userNameSetting, dan passwordSetting tidak lagi didukung untuk menentukan koneksi ke server RabbitMQ. Anda harus menggunakan connectionStringSetting.
Properti connectionStringSetting hanya dapat menerima nama pasangan kunci-nilai dalam pengaturan aplikasi. Anda tidak dapat langsung mengatur nilai string koneksi dalam pengikatan.
Misalnya, ketika Anda telah mengatur connectionStringSetting ke rabbitMQConnection dalam definisi pengikatan, aplikasi fungsi Anda harus memiliki pengaturan aplikasi bernama rabbitMQConnection yang mengembalikan nilai koneksi seperti amqp://myuser:***@contoso.rabbitmq.example.com:5672 atau referensi Azure Key Vault.
Saat berjalan secara lokal, Anda juga harus memiliki nilai kunci untuk connectionStringSetting ditentukan dalam file local.settings.json Anda. Jika tidak, aplikasi Anda tidak dapat terhubung ke layanan dari komputer lokal Anda dan terjadi kesalahan.
Antrean Dead-letter
Antrean dan pertukaran surat mati tidak dapat dikontrol atau dikonfigurasi dari pemicu RabbitMQ. Untuk menggunakan antrean surat mati, prakonfigurasi antrean yang digunakan oleh pemicu di RabbitMQ. Silakan lihat dokumentasi RabbitMQ.
Fungsikan Penskalaan Runtime
Agar pemicu RabbitMQ dapat diskalakan ke beberapa instans, pengaturan Pemantauan Skala Runtime harus diaktifkan.
Di portal, pengaturan ini dapat ditemukan di bawah Pengaturan>runtime Fungsi Konfigurasi untuk aplikasi fungsi Anda.
Di Azure CLI, Anda dapat mengaktifkan Pemantauan Skala Runtime dengan menggunakan perintah ini:
az resource update -resource-group <RESOURCE_GROUP> -name <APP_NAME>/config/web \
--set properties.functionsRuntimeScaleMonitoringEnabled=1 \
--resource-type Microsoft.Web/sites
Memantau titik akhir RabbitMQ
Untuk memantau antrean dan pertukaran Anda untuk titik akhir RabbitMQ tertentu:
- Aktifkan plugin manajemen RabbitMQ
- Telusuri
http://{node-hostname}:15672dan masuk dengan nama pengguna dan kata sandi Anda.