所有,我正在尝试查找一些文档,以使用无服务器功能将数据插入Cosmos DB集合。我正在使用httptriggers从请求中获取数据并将其插入到cosmos中。
我无法找到任何有关此的文档。尤其是使用javascript。
这是我目前的情况,但是会抛出错误。
我的Index.js文件
module.exports = async function (context, req) {
const endpoint = "https://localhost:8081/";
const key = "key here";
const database = "NodeSamples";
const container = "Data";
const itemDefs = JSON.parse({"fname":"John","lname":"Doe"});
await Promise.all(itemDefs.map((itemDef: any) => container.items.create(itemDef)));
};
任何帮助将不胜感激
答案 0 :(得分:0)
您可以从here
中找到文档,并且需要导入必要的程序包
module.exports = async function (context, req) {
// We need both name and task parameters.
if (req.query.name && req.query.task) {
// Set the output binding data from the query object.
context.bindings.taskDocument = req.query;
// Success.
context.res = {
status: 200
};
}
else {
context.res = {
status: 400,
body: "The query options 'name' and 'task' are required."
};
}
};
答案 1 :(得分:0)
如果要使用Azure Functions中的Cosmos DB SDK,则可以:
包装:https://github.com/Azure/azure-cosmos-js/
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进行交互的一种简便方法,因为它们涵盖了基本场景,而无需执行维护单例客户端实例之类的事情,但是如果您想做很多事情(查询文档,保存它们,更新等) )在同一函数上执行,那么最好的选择是选择第一个选项。
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"
}