如果您想要在 Azure Functions 中使用 Cosmos DB SDK,您可以:
使用 Cosmos DB JS SDK
包裹:https://github.com/Azure/azure-cosmos-js/
参考:https://docs.microsoft.com/azure/azure-functions/manage-connections#cosmosclient-code-example-javascript
const cosmos = require('@azure/cosmos');
const endpoint = process.env.COSMOS_API_URL;
const key = process.env.COSMOS_API_KEY;
const { CosmosClient } = cosmos;
const client = new CosmosClient({ endpoint, key });
const container = client.database("MyDatabaseName").container("MyContainerName");
module.exports = async function (context) {
const itemDefs = JSON.parse('[{"id":"SomeId", "fname":"John","lname":"Doe"}]');
await Promise.all(itemDefs.map((itemDef: any) => container.items.create(itemDef)));
}
使用 Cosmos DB 函数绑定
绑定是与 Cosmos DB 交互的一种简单方法,因为它们涵盖了基本场景,而无需执行诸如维护单例客户端实例之类的事情,但如果您想做很多事情(查询文档、保存文档、更新等) ) 在相同的函数执行上,那么您最好的选择是使用第一个选项。
参考:https://docs.microsoft.com/azure/azure-functions/functions-bindings-cosmosdb-v2#output---javascript-examples
module.exports = function (context) {
const itemDefs = JSON.parse('[{"id":"SomeId", "fname":"John","lname":"Doe"}]');
context.bindings.documentsToSave = itemDefs;
context.done();
};
已经用绑定定义了你的function.json:
{
"name": "documentsToSave",
"type": "cosmosDB",
"databaseName": "MyDatabase",
"collectionName": "MyCollection",
"createIfNotExists": true,
"connectionStringSetting": "MyAccount_COSMOSDB",
"direction": "out"
}