Azure Functions 支持开箱即用的 Document DB (Cosmos DB)。您只需在 V1 中添加一个名为 AzureWebJobsDocumentDBConnectionString 的环境变量,在 V2 中添加一个名为 AzureWebJobsCosmosDBConnectionString 的环境变量。
然后只需使用CosmosDBTrigger 绑定属性进行输入绑定,例如(在 C# 中):
public static class UpsertProductCosmosDbTrigger
{
[FunctionName("ProductUpsertCosmosDbTrigger")]
public static void Run(
[CosmosDBTrigger(
// Those names come from the application settings.
// Those names can come with both preceding % and trailing %.
databaseName: "CosmosDbDdatabaseName",
collectionName: "CosmosDbCollectionName",
LeaseDatabaseName = "CosmosDbDdatabaseName",
LeaseCollectionName = "CosmosDbLeaseCollectionName")]
IReadOnlyList<Document> input,
TraceWriter log)
...
对于输出绑定,在 V1 中使用 DocumentDB 输出绑定属性,在 V2 中使用 CosmosDB,例如:
[FunctionName("ProductUpsertHttpTrigger")]
public static async Task<HttpResponseMessage> Run(
[HttpTrigger(AuthorizationLevel.Function, "post", Route = "products")]
HttpRequestMessage req,
[DocumentDB(
databaseName: "%CosmosDbDdatabaseName%",
collectionName: "%CosmosDbCollectionName%")] IAsyncCollector<Product> collector,
TraceWriter log)
...
我已经写了一篇关于此的博客文章:https://blog.mexia.com.au/cosmos-db-in-azure-functions-v1-and-v2