Pengikatan Azure Cosmos DB untuk Azure Functions 1.x
Penting
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.
Artikel ini menjelaskan cara bekerja dengan pengikatanAzure Cosmos DB di Azure Functions. Azure Functions mendukung pengikatan pemicu, input, dan output untuk Azure Cosmos DB.
Catatan
Artikel ini untuk Azure Functions 1.x. Untuk informasi tentang cara menggunakan pengikatan ini di Functions 2.x dan versi yang lebih tinggi, lihat Pengikatan Azure Cosmos DB untuk Azure Functions 2.x.
Pengikatan ini awalnya bernama DocumentDB. Di Azure Functions versi 1.x, hanya pemicu yang diganti namanya menjadi Azure Cosmos DB; pengikatan input, pengikatan output, dan paket NuGet mempertahankan nama DocumentDB.
Catatan
Pengikatan Azure Cosmos DB hanya didukung untuk digunakan dengan SQL API. Untuk semua API Azure Cosmos DB lainnya, Anda harus mengakses database dari fungsi Anda dengan menggunakan klien statis untuk API Anda, termasuk Azure Cosmos DB untuk MongoDB, Azure Cosmos DB untuk Apache Cassandra, Azure Cosmos DB untuk Apache Gremlin, dan Azure Cosmos DB for Table.
Paket - Functions 1.x
Pengikatan Azure Cosmos DB untuk Functions versi 1.x disediakan dalam paket NuGet Microsoft.Azure.WebJobs.Extensions.DocumentDB versi 1.x. Kode sumber untuk paket berada di repositori GitHub azure-webjobs-sdk-extensions.
Tabel berikut ini mencantumkan cara menambahkan dukungan untuk pengikatan output di setiap lingkungan pengembangan.
Lingkungan pengembangan | Untuk menambahkan dukungan di Functions 1.x |
---|---|
Pengembangan lokal: Pustaka kelas C# | Instal paket |
Pengembangan lokal: skrip C#, JavaScript, F# | Otomatis |
Pengembangan portal | Otomatis |
Pemicu
Pemicu Azure Cosmos DB menggunakan Umpan Perubahan Azure Cosmos DB untuk mendengarkan sisipan dan pembaruan di seluruh partisi. Umpan perubahan menerbitkan sisipan dan pembaruan, bukan penghapusan.
Pemicu - contoh
Contoh berikut menunjukkan fungsi C# dalam proses yang dipanggil ketika ada penyisipan atau pembaruan dalam database dan koleksi yang ditentukan.
using Microsoft.Azure.Documents;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using System.Collections.Generic;
namespace CosmosDBSamplesV1
{
public static class CosmosTrigger
{
[FunctionName("CosmosTrigger")]
public static void Run([CosmosDBTrigger(
databaseName: "ToDoItems",
collectionName: "Items",
ConnectionStringSetting = "CosmosDBConnection",
LeaseCollectionName = "leases",
CreateLeaseCollectionIfNotExists = true)]IReadOnlyList<Document> documents,
TraceWriter log)
{
if (documents != null && documents.Count > 0)
{
log.Info($"Documents modified: {documents.Count}");
log.Info($"First document Id: {documents[0].Id}");
}
}
}
}
Pemicu - atribut
Untuk pustaka kelas C# dalam proses, gunakan atribut CosmosDBTrigger .
Konstruktor atribut mengambil nama database dan nama koleksi. Untuk informasi tentang pengaturan tersebut dan properti lain yang dapat Anda konfigurasikan, lihat Pemicu - konfigurasi. Berikut contoh atribut CosmosDBTrigger
dalam tanda tangan metode:
[FunctionName("DocumentUpdates")]
public static void Run(
[CosmosDBTrigger("database", "collection", ConnectionStringSetting = "myCosmosDB")]
IReadOnlyList<Document> documents,
TraceWriter log)
{
...
}
Untuk contoh lengkap, lihat Pemicu - contoh C#.
Pemicu - konfigurasi
Tabel berikut menjelaskan properti konfigurasi pengikatan yang Anda tetapkan di file function.json dan CosmosDBTrigger
atributnya.
Properti function.json | Properti atribut | Deskripsi |
---|---|---|
jenis | n/a | Harus diatur ke cosmosDBTrigger . |
arah | n/a | Harus diatur ke in . Parameter ini diatur secara otomatis saat Anda membuat pemicu di portal Microsoft Azure. |
nama | n/a | Nama variabel yang digunakan dalam kode fungsi yang mewakili daftar dokumen dengan perubahan. |
connectionStringSetting | ConnectionStringSetting | Nama pengaturan aplikasi berisi string koneksi yang digunakan untuk tersambung ke akun Azure Cosmos DB sedang dipantau. |
databaseName | DatabaseName | Nama database Azure Cosmos DB dengan koleksi sedang dipantau. |
collectionName | CollectionName | Nama koleksi sedang dipantau. |
leaseConnectionStringSetting | LeaseConnectionStringSetting | (Opsional) Nama pengaturan aplikasi yang berisi string koneksi ke layanan yang menyimpan koleksi sewa. Saat tidak diatur, nilai connectionStringSetting akan digunakan. Parameter ini secara otomatis diatur saat pengikatan dibuat di portal. String koneksi untuk koleksi sewa harus memiliki izin tulis. |
leaseDatabaseName | LeaseDatabaseName | (Opsional) Nama database yang menyimpan koleksi digunakan untuk menyimpan sewa. Saat tidak diatur, nilai databaseName pengaturan digunakan. Parameter ini secara otomatis diatur saat pengikatan dibuat di portal. |
leaseCollectionName | LeaseCollectionName | (Opsional) Nama koleksi yang digunakan untuk menyimpan sewa. Saat tidak diatur, nilai leases akan digunakan. |
createLeaseCollectionIfNotExists | CreateLeaseCollectionIfNotExists | (Opsional) Saat diatur ke true , koleksi sewa secara otomatis dibuat jika belum ada. Nilai defaultnya adalah false . |
leasesCollectionThroughput | LeasesCollectionThroughput | (Opsional) Menentukan jumlah Unit Permintaan yang akan ditetapkan saat koleksi sewa dibuat. Pengaturan ini hanya digunakan saat createLeaseCollectionIfNotExists diatur ke true . Parameter ini secara otomatis diatur saat pengikatan dibuat menggunakan portal. |
leaseCollectionPrefix | LeaseCollectionPrefix | (Opsional) Ketika ditetapkan, parameter menambahkan prefiks untuk sewa yang dibuat dalam koleksi Sewa untuk Fungsi ini, secara efektif memungkinkan dua Azure Functions terpisah untuk berbagi koleksi Sewa yang sama dengan menggunakan prefiks yang berbeda. |
feedPollDelay | FeedPollDelay | (Opsional) Ketika diatur, parameter mendefinisikan, dalam milidetik, keterlambatan di antara poling partisi untuk perubahan baru pada umpan, setelah semua perubahan yang ada habis. Default-nya adalah 5000 (5 detik). |
leaseAcquireInterval | LeaseAcquireInterval | (Opsional) Saat diatur, properti ini mendefinisikan, dalam milidetik, interval memulai tugas yang akan dikomputasi jika partisi didistribusikan secara merata di antara instans host yang dikenal. Defaultnya adalah 13000 (13 detik). |
leaseExpirationInterval | LeaseExpirationInterval | (Opsional) Saat diatur, properti ini mendefinisikan, dalam milidetik, interval saat sewa diambil dari sewa yang mewakili partisi. Jika sewa tidak diperpanjang dalam interval ini, maka akan menyebabkan kedaluwarsa dan kepemilikan partisi akan pindah ke instans lain. Defaultnya adalah 60000 (60 detik). |
leaseRenewInterval | LeaseRenewInterval | (Opsional) Saat diatur, properti ini mendefinisikan, dalam milidetik, interval perpanjangan semua sewa untuk partisi yang saat ini dipegang oleh instans. Defaultnya adalah 17000 (17 detik). |
checkpointFrequency | CheckpointFrequency | (Opsional) Saat diatur, properti ini mendefinisikan, dalam milidetik, interval antara titik pemeriksaan sewa. Default selalu setelah setiap panggilan Fungsi. |
maxItemsPerInvocation | MaxItemsPerInvocation | (Opsional) Saat diatur, properti ini menyesuaikan jumlah maksimum item yang diterima per panggilan Fungsi. |
startFromBeginning | StartFromBeginning | (Opsional) Saat diatur, properti ini memberi tahu Pemicu untuk mulai membaca perubahan dari awal riwayat koleksi, dan bukan dari waktu saat ini. Membaca dari awal hanya berfungsi saat Pemicu dimulai, karena dalam proses berikutnya, titik pemeriksaan sudah disimpan. Mengatur opsi ini ke true saat sewa sudah dibuat, tidak akan berpengaruh. |
Ketika Anda mengembangkan secara lokal, tambahkan pengaturan aplikasi di file local.settings.json dalam koleksi Values
.
Pemicu - penggunaan
Pemicu membutuhkan koleksi kedua yang digunakannya untuk menyimpan sewa atas partisi. Baik koleksi terpantau maupun koleksi yang berisi sewa harus tersedia agar pemicu berfungsi.
Penting
Jika beberapa fungsi dikonfigurasi untuk menggunakan pemicu Azure Cosmos DB untuk koleksi yang sama, masing-masing fungsi harus menggunakan koleksi sewa khusus atau menentukan yang berbeda LeaseCollectionPrefix
untuk setiap fungsi. Jika tidak, hanya salah satu fungsi yang akan dipicu. Untuk informasi tentang prefiks, lihat bagian Konfigurasi.
Pemicu tidak menunjukkan apakah dokumen diperbarui atau disisipkan, pemicu hanya menyediakan dokumen itu sendiri. Jika Anda perlu menangani pembaruan dan penyisipan secara berbeda, Anda dapat melakukannya dengan menerapkan bidang tanda waktu untuk penyisipan atau pembaruan.
Input
Pengikatan input Azure Cosmos DB menggunakan SQL API untuk mengambil satu atau beberapa dokumen Azure Cosmos DB dan meneruskannya ke parameter input fungsi. ID dokumen atau parameter kueri dapat ditentukan berdasarkan pada pemicu yang memanggil fungsi.
Input - contoh
Bagian ini berisi contoh-contoh berikut:
- Pemicu antrean, cari ID dari JSON
- Pemicu HTTP, cari ID dari string kueri
- Pemicu HTTP, cari ID dari data rute
- Pemicu HTTP, cari ID dari data rute, menggunakan SqlQuery
- Pemicu HTTP, dapatkan beberapa dokumen, menggunakan SqlQuery
- Pemicu HTTP, dapatkan beberapa dokumen, menggunakan DocumentClient
Contohnya mengacu pada jenis ToDoItem
sederhana:
namespace CosmosDBSamplesV1
{
public class ToDoItem
{
public string Id { get; set; }
public string Description { get; set; }
}
}
Pemicu antrean, cari ID dari JSON
Contoh berikut memperlihatkan fungsi C# yang mengambil satu dokumen. Fungsi ini dipicu oleh pesan antrean yang berisi objek JSON. Pemicu antrean memilah JSON ke dalam objek bernama ToDoItemLookup
, yang berisi ID untuk mencari. ID tersebut digunakan untuk mengambil dokumen ToDoItem
dari database dan kumpulan yang ditentukan.
namespace CosmosDBSamplesV1
{
public class ToDoItemLookup
{
public string ToDoItemId { get; set; }
}
}
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
namespace CosmosDBSamplesV1
{
public static class DocByIdFromJSON
{
[FunctionName("DocByIdFromJSON")]
public static void Run(
[QueueTrigger("todoqueueforlookup")] ToDoItemLookup toDoItemLookup,
[DocumentDB(
databaseName: "ToDoItems",
collectionName: "Items",
ConnectionStringSetting = "CosmosDBConnection",
Id = "{ToDoItemId}")]ToDoItem toDoItem,
TraceWriter log)
{
log.Info($"C# Queue trigger function processed Id={toDoItemLookup?.ToDoItemId}");
if (toDoItem == null)
{
log.Info($"ToDo item not found");
}
else
{
log.Info($"Found ToDo item, Description={toDoItem.Description}");
}
}
}
}
Pemicu HTTP, cari ID dari string kueri
Contoh berikut memperlihatkan fungsi C# yang mengambil satu dokumen. Fungsi ini dipicu oleh permintaan HTTP yang menggunakan sebuah string kueri untuk menentukan ID yang akan dicari. ID tersebut digunakan untuk mengambil dokumen ToDoItem
dari database dan kumpulan yang ditentukan.
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
using System.Net;
using System.Net.Http;
namespace CosmosDBSamplesV1
{
public static class DocByIdFromQueryString
{
[FunctionName("DocByIdFromQueryString")]
public static HttpResponseMessage Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req,
[DocumentDB(
databaseName: "ToDoItems",
collectionName: "Items",
ConnectionStringSetting = "CosmosDBConnection",
Id = "{Query.id}")] ToDoItem toDoItem,
TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
if (toDoItem == null)
{
log.Info($"ToDo item not found");
}
else
{
log.Info($"Found ToDo item, Description={toDoItem.Description}");
}
return req.CreateResponse(HttpStatusCode.OK);
}
}
}
Pemicu HTTP, cari ID dari data rute
Contoh berikut memperlihatkan fungsi C# yang mengambil satu dokumen. Fungsi ini dipicu oleh permintaan HTTP yang menggunakan data rute untuk menentukan ID untuk pencarian. ID tersebut digunakan untuk mengambil dokumen ToDoItem
dari database dan kumpulan yang ditentukan.
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
using System.Net;
using System.Net.Http;
namespace CosmosDBSamplesV1
{
public static class DocByIdFromRouteData
{
[FunctionName("DocByIdFromRouteData")]
public static HttpResponseMessage Run(
[HttpTrigger(
AuthorizationLevel.Anonymous, "get", "post",
Route = "todoitems/{id}")]HttpRequestMessage req,
[DocumentDB(
databaseName: "ToDoItems",
collectionName: "Items",
ConnectionStringSetting = "CosmosDBConnection",
Id = "{id}")] ToDoItem toDoItem,
TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
if (toDoItem == null)
{
log.Info($"ToDo item not found");
}
else
{
log.Info($"Found ToDo item, Description={toDoItem.Description}");
}
return req.CreateResponse(HttpStatusCode.OK);
}
}
}
Pemicu HTTP, cari ID dari data rute, menggunakan SqlQuery
Contoh berikut memperlihatkan fungsi C# yang mengambil satu dokumen. Fungsi ini dipicu oleh permintaan HTTP yang menggunakan data rute untuk menentukan ID untuk pencarian. ID tersebut digunakan untuk mengambil dokumen ToDoItem
dari database dan kumpulan yang ditentukan.
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
using System.Collections.Generic;
using System.Net;
using System.Net.Http;
namespace CosmosDBSamplesV1
{
public static class DocByIdFromRouteDataUsingSqlQuery
{
[FunctionName("DocByIdFromRouteDataUsingSqlQuery")]
public static HttpResponseMessage Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post",
Route = "todoitems2/{id}")]HttpRequestMessage req,
[DocumentDB(
databaseName: "ToDoItems",
collectionName: "Items",
ConnectionStringSetting = "CosmosDBConnection",
SqlQuery = "select * from ToDoItems r where r.id = {id}")] IEnumerable<ToDoItem> toDoItems,
TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
foreach (ToDoItem toDoItem in toDoItems)
{
log.Info(toDoItem.Description);
}
return req.CreateResponse(HttpStatusCode.OK);
}
}
}
Pemicu HTTP, dapatkan beberapa dokumen, menggunakan SqlQuery
Contoh berikut memperlihatkan fungsi C# yang mengambil daftar dokumen. Fungsi ini dipicu oleh permintaan HTTP. Kueri ditentukan dalam properti atribut SqlQuery
.
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
using System.Collections.Generic;
using System.Net;
using System.Net.Http;
namespace CosmosDBSamplesV1
{
public static class DocsBySqlQuery
{
[FunctionName("DocsBySqlQuery")]
public static HttpResponseMessage Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]
HttpRequestMessage req,
[DocumentDB(
databaseName: "ToDoItems",
collectionName: "Items",
ConnectionStringSetting = "CosmosDBConnection",
SqlQuery = "SELECT top 2 * FROM c order by c._ts desc")]
IEnumerable<ToDoItem> toDoItems,
TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
foreach (ToDoItem toDoItem in toDoItems)
{
log.Info(toDoItem.Description);
}
return req.CreateResponse(HttpStatusCode.OK);
}
}
}
Pemicu HTTP, dapatkan beberapa dokumen, menggunakan DocumentClient (C#)
Contoh berikut memperlihatkan fungsi C# yang mengambil daftar dokumen. Fungsi ini dipicu oleh permintaan HTTP. Kode ini menggunakan instans DocumentClient
yang disediakan oleh pengikatan Azure Cosmos DB untuk membaca daftar dokumen. Instans DocumentClient
juga dapat digunakan untuk operasi tulis.
using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.Documents.Linq;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.Azure.WebJobs.Host;
using System;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
namespace CosmosDBSamplesV1
{
public static class DocsByUsingDocumentClient
{
[FunctionName("DocsByUsingDocumentClient")]
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req,
[DocumentDB(
databaseName: "ToDoItems",
collectionName: "Items",
ConnectionStringSetting = "CosmosDBConnection")] DocumentClient client,
TraceWriter log)
{
log.Info("C# HTTP trigger function processed a request.");
Uri collectionUri = UriFactory.CreateDocumentCollectionUri("ToDoItems", "Items");
string searchterm = req.GetQueryNameValuePairs()
.FirstOrDefault(q => string.Compare(q.Key, "searchterm", true) == 0)
.Value;
if (searchterm == null)
{
return req.CreateResponse(HttpStatusCode.NotFound);
}
log.Info($"Searching for word: {searchterm} using Uri: {collectionUri.ToString()}");
IDocumentQuery<ToDoItem> query = client.CreateDocumentQuery<ToDoItem>(collectionUri)
.Where(p => p.Description.Contains(searchterm))
.AsDocumentQuery();
while (query.HasMoreResults)
{
foreach (ToDoItem result in await query.ExecuteNextAsync())
{
log.Info(result.Description);
}
}
return req.CreateResponse(HttpStatusCode.OK);
}
}
}
Input - atribut
Dalam pustaka kelas C# dalam proses, gunakan atribut DocumentDB .
Konstruktor atribut mengambil nama database dan nama koleksi. Untuk informasi tentang pengaturan tersebut dan properti lain yang bisa Anda konfigurasi, lihat bagian konfigurasi berikut ini.
Input - konfigurasi
Tabel berikut menjelaskan properti konfigurasi pengikatan yang Anda tetapkan di file function.json dan DocumentDB
atributnya.
Properti function.json | Properti atribut | Deskripsi |
---|---|---|
jenis | n/a | Harus diatur ke documentdb . |
arah | n/a | Harus diatur ke in . |
nama | n/a | Nama parameter pengikatan yang mewakili dokumen dalam fungsi. |
databaseName | DatabaseName | Database yang berisi dokumen. |
collectionName | CollectionName | Nama koleksi yang berisi dokumen. |
id | Id | ID dokumen yang akan diambil. Properti ini mendukung ekspresi pengikatan. Jangan set properti id dan sqlQuery. Jika Anda tidak menyetel salah satu dari satu koleksi, seluruh koleksi akan diambil. |
sqlQuery | SqlQuery | Kueri SQL Azure Cosmos DB digunakan untuk mengambil beberapa dokumen. Properti mendukung pengikatan runtime, seperti dalam contoh ini: SELECT * FROM c where c.departmentId = {departmentId} . Jangan set properti id dan sqlQuery. Jika Anda tidak menyetel salah satu dari satu koleksi, seluruh koleksi akan diambil. |
koneksi | ConnectionStringSetting | Nama pengaturan aplikasi yang berisi string koneksi Azure Cosmos DB Anda. |
partitionKey | PartitionKey | Menentukan nilai kunci partisi untuk pencarian. Mungkin termasuk parameter pengikatan. |
Ketika Anda mengembangkan secara lokal, tambahkan pengaturan aplikasi di file local.settings.json dalam koleksi Values
.
Input - penggunaan
Ketika fungsi berhasil keluar, setiap perubahan di dokumen input melalui parameter input bernama secara otomatis akan tetap ada.
Output
Pengikatan output Azure Cosmos DB memungkinkan Anda menulis dokumen baru ke database Azure Cosmos DB menggunakan SQL API.
Output- contoh
Bagian ini berisi contoh-contoh berikut:
- Pemicu antrean, tulis satu dokumen
- Pemicu antrean, tulis dokumen menggunakan
IAsyncCollector
Contohnya mengacu pada jenis ToDoItem
sederhana:
namespace CosmosDBSamplesV1
{
public class ToDoItem
{
public string Id { get; set; }
public string Description { get; set; }
}
}
Pemicu antrean, tulis satu dokumen
Contoh berikut memperlihatkan fungsi C# yang menambahkan dokumen ke database, menggunakan data yang disediakan dalam pesan dari penyimpanan Antrean.
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using System;
namespace CosmosDBSamplesV1
{
public static class WriteOneDoc
{
[FunctionName("WriteOneDoc")]
public static void Run(
[QueueTrigger("todoqueueforwrite")] string queueMessage,
[DocumentDB(
databaseName: "ToDoItems",
collectionName: "Items",
ConnectionStringSetting = "CosmosDBConnection")]out dynamic document,
TraceWriter log)
{
document = new { Description = queueMessage, id = Guid.NewGuid() };
log.Info($"C# Queue trigger function inserted one row");
log.Info($"Description={queueMessage}");
}
}
}
Pemicu antrean, tulis dokumen menggunakan IAsyncCollector
Contoh berikut memperlihatkan fungsi C# yang menambahkan kumpulan dokumen ke database, menggunakan data yang disediakan dalam JSON pesan antrean.
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using System.Threading.Tasks;
namespace CosmosDBSamplesV1
{
public static class WriteDocsIAsyncCollector
{
[FunctionName("WriteDocsIAsyncCollector")]
public static async Task Run(
[QueueTrigger("todoqueueforwritemulti")] ToDoItem[] toDoItemsIn,
[DocumentDB(
databaseName: "ToDoItems",
collectionName: "Items",
ConnectionStringSetting = "CosmosDBConnection")]
IAsyncCollector<ToDoItem> toDoItemsOut,
TraceWriter log)
{
log.Info($"C# Queue trigger function processed {toDoItemsIn?.Length} items");
foreach (ToDoItem toDoItem in toDoItemsIn)
{
log.Info($"Description={toDoItem.Description}");
await toDoItemsOut.AddAsync(toDoItem);
}
}
}
}
Output - atribut
Dalam pustaka kelas C# dalam proses, gunakan atribut DocumentDB .
Konstruktor atribut mengambil nama database dan nama koleksi. Untuk informasi tentang pengaturan tersebut dan properti lain yang dapat Anda konfigurasi, lihat Output - konfigurasi. Berikut contoh atribut DocumentDB
dalam tanda tangan metode:
[FunctionName("QueueToDocDB")]
public static void Run(
[QueueTrigger("myqueue-items", Connection = "AzureWebJobsStorage")] string myQueueItem,
[DocumentDB("ToDoList", "Items", Id = "id", ConnectionStringSetting = "myCosmosDB")] out dynamic document)
{
...
}
Untuk contoh lengkapnya, lihat Output.
Output- konfigurasi
Tabel berikut menjelaskan properti konfigurasi pengikatan yang Anda tetapkan di file function.json dan DocumentDB
atributnya.
Properti function.json | Properti atribut | Deskripsi |
---|---|---|
jenis | n/a | Harus diatur ke documentdb . |
arah | n/a | Harus diatur ke out . |
nama | n/a | Nama parameter pengikatan yang mewakili dokumen dalam fungsi. |
databaseName | DatabaseName | Database yang berisi kumpulan tempat dokumen dibuat. |
collectionName | CollectionName | Nama kumpulan tempat dokumen dibuat. |
createIfNotExists | CreateIfNotExists | Nilai boolean untuk menunjukkan apakah kumpulan dibuat saat tidak ada. Default-nya salah karena kumpulan baru dibuat dengan throughput yang dipesan, yang memiliki implikasi biaya. Untuk informasi lebih lanjut, lihat halaman harga. |
partitionKey | PartitionKey | Jika CreateIfNotExists adalah benar, maka tetapkan jalur kunci partisi untuk koleksi yang dibuat. |
collectionThroughput | CollectionThroughput | Jika CreateIfNotExists adalah benar, maka tetapkan throughput dari koleksi yang dibuat. |
koneksi | ConnectionStringSetting | Nama pengaturan aplikasi yang berisi string koneksi Azure Cosmos DB Anda. |
Ketika Anda mengembangkan secara lokal, tambahkan pengaturan aplikasi di file local.settings.json dalam koleksi Values
.
Output- penggunaan
Secara default, saat menulis ke parameter output dalam fungsi Anda, dokumen dibuat di database Anda. Dokumen ini memiliki GUID yang dibuat secara otomatis sebagai ID dokumen. Anda dapat menentukan ID dokumen dari dokumen output dengan menentukan properti id
dalam objek JSON yang diteruskan ke parameter output.
Catatan
Saat Anda menentukan ID dokumen yang sudah ada, dokumen akan ditimpa oleh dokumen output baru.
Kode pengecualian dan pengembalian
Pengikatan | Referensi |
---|---|
Azure Cosmos DB | Daftar Kode Status HTTP untuk Azure Cosmos DB |