Bagikan melalui


Pengikatan Azure Cosmos DB untuk Azure Functions 1.x

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:

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);
        }
    }
}

Lompati contoh input

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);
        }
    }
}

Lompati contoh input

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);
        }
    }
}

Lompati contoh input

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

Langkah berikutnya