Pengikatan Tabel Azure untuk Azure Functions

Azure Functions terintegrasi dengan Tabel Azure melalui pemicu dan pengikatan. Mengintegrasikan dengan Azure Tables memungkinkan Anda membangun fungsi yang membaca dan menulis data menggunakan Azure Cosmos DB for Table dan Azure Table Storage.

Perbuatan Jenis
Membaca data tabel dalam fungsi Pengikatan masukan
Mengizinkan fungsi menulis data tabel 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.

Proses untuk menginstal ekstensi 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.Data.Tables. Ini juga memperkenalkan kemampuan untuk menggunakan Azure Cosmos DB for Table.

Ekstensi ini tersedia dengan menginstal paket NuGet Microsoft.Azure.Functions.Worker.Extensions.Tables ke dalam proyek menggunakan versi 5.x atau yang lebih tinggi dari ekstensi untuk blob dan antrean.

Menggunakan CLI .NET:

# Install the Azure Tables extension
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Tables --version 1.0.0

# Update the combined Azure Storage extension (to a version which no longer includes Azure Tables)
dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Storage --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.

Jika Anda menulis aplikasi menggunakan F#, Anda juga harus mengonfigurasi ekstensi ini sebagai bagian dari konfigurasi startup aplikasi. Dalam panggilan ke ConfigureFunctionsWorkerDefaults() atau ConfigureFunctionsWebApplication(), tambahkan delegasi yang mengambil IFunctionsWorkerApplication parameter. Kemudian dalam isi delegasi tersebut, panggil ConfigureTablesExtension() pada objek:

let hostBuilder = new HostBuilder()
hostBuilder.ConfigureFunctionsWorkerDefaults(fun (context: HostBuilderContext) (appBuilder: IFunctionsWorkerApplicationBuilder) ->
    appBuilder.ConfigureTablesExtension() |> ignore
) |> ignore

Memasang bundel

Pengikatan Tabel Azure adalah bagian dari bundel ekstensi, yang ditentukan dalam file proyek host.json Anda. 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 v3 dengan menambahkan atau mengganti kode berikut dalam file host.json:

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

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 pengikatan ke jenis dari Azure.Data.Tables sedang dalam pratinjau.

Pengikatan input Tabel Azure

Saat bekerja dengan entitas tabel tunggal, pengikatan input Tabel Azure dapat mengikat ke jenis berikut:

Tipe Deskripsi
Jenis JSON yang dapat diserialisasi yang mengimplementasikan ITableEntity Fungsi mencoba untuk mendeserialisasi entitas ke dalam jenis objek CLR (POCO) biasa-lama. Jenis harus mengimplementasikan ITableEntity atau memiliki properti string RowKey dan properti string PartitionKey .
TableEntity1 Entitas sebagai jenis seperti kamus.

Saat bekerja dengan beberapa entitas dari kueri, pengikatan input Tabel Azure dapat mengikat ke jenis berikut:

Tipe Deskripsi
IEnumerable<T> di mana T mengimplementasikan ITableEntity Enumerasi entitas yang dikembalikan oleh kueri. Setiap entri mewakili satu entitas. Jenis harus mengimplementasikan ITableEntity atau memiliki properti string RowKey dan properti stringPartitionKey.T
TableClient1 Klien yang tersambung ke tabel. Ini menawarkan kontrol terbanyak untuk memproses tabel dan dapat digunakan untuk menulis ke tabel jika koneksi memiliki izin yang memadai.

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

Pengikatan output Tabel Azure

Saat Anda ingin fungsi menulis ke satu entitas, pengikatan output Tabel Azure dapat mengikat ke jenis berikut:

Tipe Deskripsi
Jenis JSON yang dapat diserialisasi yang mengimplementasikan [ITableEntity] Fungsi mencoba untuk menserialisasikan jenis objek CLR (POCO) biasa-lama sebagai entitas. Jenis harus mengimplementasikan [ITableEntity] atau memiliki properti string RowKey dan properti string PartitionKey .

Saat Anda ingin fungsi menulis ke beberapa entitas, pengikatan output Tabel Azure dapat mengikat ke jenis berikut:

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

Untuk skenario output lainnya, buat dan gunakan jenis dari Azure.Data.Tables secara langsung.

Langkah berikutnya