[英]Azure Serverless Insert data into Cosmos dB using javascript
所有,我正在尝试使用我的无服务器 function 查找一些文档以将数据插入到 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)));
};
任何帮助将不胜感激
您可以从here
找到文档,您需要导入必要的 package
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."
};
}
};
如果您想要的是在 Azure 函数中使用 Cosmos DB SDK,您可以:
Package: 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 交互的一种简单方法,因为它们涵盖了基本场景,而无需执行维护 singleton 客户端实例之类的操作,但如果您想要在同样的 Function 执行,那么你最好的选择是 go 与第一个选项。
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"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.