Pemicu dan pengikatan penyimpanan Antrean Azure untuk gambaran umum Azure Functions

Azure Functions dapat berjalan saat pesan penyimpanan Antrean Azure baru dibuat dan dapat menulis pesan antrean dalam fungsi.

Perbuatan Jenis
Jalankan fungsi sebagai perubahan data penyimpanan antrean Pemicu
Menulis pesan penyimpanan antrean Pengikatan output

Menginstal ekstensi

Paket NuGet ekstensi yang Anda instal bergantung pada mode C# yang Anda gunakan di aplikasi fungsi Anda:

Functions dijalankan dalam proses pekerja C# yang terisolasi. Untuk mempelajari selengkapnya, lihat Panduan untuk menjalankan C# Azure Functions dalam proses pekerja yang terisolasi.

Fungsionalitas ekstensi tersebut bervariasi tergantung pada versi ekstensi:

Versi ini memperkenalkan kemampuan untuk menyambungkan menggunakan identitas alih-alih rahasia. Untuk tutorial cara mengonfigurasi aplikasi fungsi Anda dengan identitas terkelola, lihat tutorial membuat aplikasi fungsi dengan koneksi berbasis identitas.

Versi ini memungkinkan Anda untuk mengikat ke jenis dari Azure.Storage.Queues.

Tambahkan ekstensi ke proyek Anda dengan menginstal paket NuGet, versi 5.x.

Menggunakan CLI .NET:

dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues --version 5.0.0

Catatan

Azure Blobs, Azure Queues, dan Azure Tables sekarang menggunakan ekstensi terpisah dan direferensikan satu per satu. Misalnya, untuk menggunakan pemicu dan pengikatan untuk ketiga layanan di aplikasi proses terisolasi .NET, Anda harus menambahkan paket berikut ke proyek Anda:

Sebelumnya, ekstensi dikirim bersama-sama sebagai Microsoft.Azure.Functions.Worker.Extensions.Storage, versi 4.x. Paket yang sama ini juga memiliki versi 5.x, yang merujuk pada paket terpisah untuk blob dan antrean saja. Saat memutakhirkan referensi paket dari versi yang lebih lama, Anda mungkin perlu juga mereferensikan paket NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables baru. Juga, saat mereferensikan paket terpisah yang lebih baru ini, pastikan Anda tidak merujuk versi yang lebih lama dari paket penyimpanan gabungan, karena ini akan mengakibatkan konflik dari dua definisi dari ikatan yang sama.

Memasang bundel

Pengikatan penyimpanan Blob adalah bagian dari bundel ekstensi, yang ditentukan dalam file proyek host.json. Anda mungkin perlu mengubah bundel ini untuk mengubah versi pengikatan, atau jika bundel belum terinstal. Untuk mempelajari lebih lanjut, lihat bundel ekstensi.

Versi ini memperkenalkan kemampuan untuk menyambungkan menggunakan identitas alih-alih rahasia. Untuk tutorial cara mengonfigurasi aplikasi fungsi Anda dengan identitas terkelola, lihat tutorial membuat aplikasi fungsi dengan koneksi berbasis identitas.

Anda dapat menambahkan versi ekstensi ini dari bundel ekstensi pratinjau v3 dengan menambahkan atau mengganti kode berikut dalam file host.json Anda:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

Untuk mempelajari selengkapnya, lihat Perbarui ekstensi Anda.

Jenis pengikatan

Jenis pengikatan yang didukung untuk .NET bergantung pada versi ekstensi dan mode eksekusi C#, yang dapat menjadi salah satu hal berikut:

Pustaka kelas proses pekerja terisolasi yang dikompilasi fungsi C# berjalan dalam proses yang diisolasi dari runtime.

Pilih versi untuk melihat detail jenis pengikatan untuk mode dan versi.

Proses pekerja yang terisolasi mendukung jenis parameter sesuai dengan tabel di bawah ini. Dukungan untuk mengikat ke jenis dari Azure.Storage.Queues sedang dalam pratinjau.

Pemicu antrean

Pemicu antrean dapat mengikat ke jenis berikut:

Tipe Deskripsi
string Konten pesan sebagai string. Gunakan saat pesan adalah teks sederhana..
byte[] Byte pesan.
Jenis yang bisa diserialisasikan JSON Saat pesan antrean berisi data JSON, Functions mencoba mendeserialisasi data JSON ke dalam jenis objek CLR (POCO) yang sudah lama.
QueueMessage1 Pesannya.
BinaryData1 Byte pesan.

1 Untuk menggunakan jenis ini, Anda perlu mereferensikan Microsoft.Azure.Functions.Worker.Extensions.Storage.Queues 5.2.0 atau yang lebih baru dan dependensi umum untuk pengikatan jenis SDK.

Pengikatan output antrean

Saat Anda ingin fungsi menulis satu pesan, pengikatan output antrean dapat mengikat ke jenis berikut:

Tipe Deskripsi
string Konten pesan sebagai string. Gunakan saat pesan adalah teks sederhana.
byte[] Byte pesan.
Jenis yang bisa diserialisasikan JSON Objek yang mewakili konten pesan JSON. Functions mencoba menserialisasikan jenis objek CLR (POCO) lama biasa ke dalam data JSON.

Saat Anda ingin fungsi menulis beberapa pesan, pengikatan output antrean dapat mengikat ke jenis berikut:

Tipe Deskripsi
T[] di mana T adalah salah satu jenis pesan tunggal Array yang berisi konten untuk beberapa pesan. Setiap entri mewakili satu pesan.

Untuk skenario output lainnya, buat dan gunakan jenis dari Azure.Storage.Queues secara langsung.

Pengaturan host.json

Bagian ini menjelaskan pengaturan konfigurasi yang tersedia untuk pengikatan ini dalam versi 2.x dan yang lebih tinggi. Pengaturan dalam file host.json berlaku untuk semua fungsi dalam instans aplikasi fungsi. Contohnya file host.json di bawah ini hanya berisi pengaturan versi 2.x+ untuk pengikatan ini. Untuk informasi selengkapnya tentang pengaturan konfigurasi aplikasi fungsi dalam versi 2.x dan seterusnya, lihat referensi host.json untuk Azure Functions.

Catatan

Untuk referensi host.json di Azure Functions 1.x, lihat referensi host.json untuk Azure Functions 1.x.

{
    "version": "2.0",
    "extensions": {
        "queues": {
            "maxPollingInterval": "00:00:02",
            "visibilityTimeout" : "00:00:30",
            "batchSize": 16,
            "maxDequeueCount": 5,
            "newBatchThreshold": 8,
            "messageEncoding": "base64"
        }
    }
}
Properti Default Deskripsi
maxPollingInterval 00:01:00 Interval maksimum antar polling antrean. Interval minimum adalah 00:00:00.100 (100 milidetik). Tahapan interval hingga maxPollingInterval. Nilai default dari maxPollingInterval adalah 00:01:00 (1 menit). maxPollingInterval tidak boleh kurang dari 00:00:00.100 (100 milidetik). Dalam Fungsi 2.x dan yang lebih baru, tipe data adalah TimeSpan. Dalam Fungsi 1.x, berbentuk milidetik.
visibilityTimeout 00:00:00 Interval waktu antara coba ulang ketika pemrosesan pesan gagal.
batchSize 16 Jumlah pesan antrean yang diambil runtime Azure Functions secara bersamaan dan diproses secara paralel. Ketika nomor yang sedang diproses turun ke newBatchThreshold, runtime mendapatkan batch lain dan mulai memproses pesan-pesan tersebut. Jadi jumlah maksimum pesan bersamaan yang sedang diproses per fungsi adalah batchSize plus newBatchThreshold. Batas ini berlaku secara terpisah untuk setiap fungsi yang dipicu antrean.

Jika Anda ingin menghindari eksekusi paralel untuk pesan yang diterima pada satu antrean, Anda dapat mengatur batchSize ke 1. Namun, pengaturan ini menghilangkan konkurensi selama aplikasi fungsi Anda hanya berjalan pada satu komputer virtual (VM). Jika aplikasi fungsi menskalakan ke beberapa VM, setiap VM dapat menjalankan satu instans dari setiap fungsi yang dipicu antrean.

Maksimum batchSize adalah 32.
maxDequeueCount 5 Frekuensi mencoba memproses pesan sebelum memindahkannya ke antrean racun.
newBatchThreshold N*batchSize/2 Setiap kali jumlah pesan yang sedang diproses secara bersamaan turun ke nomor ini, runtime mengambil batch lain.

N mewakili jumlah vCPU yang tersedia saat berjalan pada Layanan Aplikasi atau Paket Premium. Nilainya adalah 1 untuk Paket Konsumsi.
pesanEncoding base64 Pengaturan ini hanya tersedia dalam bundel ekstensi versi 5.0.0 dan yang lebih tinggi. Ini mewakili format pengkodean untuk pesan. Nilai yang berlaku adalah base64 atau none.

Langkah berikutnya