繁体   English   中英

Azure Serverless 使用 javascript 将数据插入 Cosmos dB

[英]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,您可以:

使用 Cosmos DB JS SDK

Package: 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 Function 绑定

绑定是与 Cosmos DB 交互的一种简单方法,因为它们涵盖了基本场景,而无需执行维护 singleton 客户端实例之类的操作,但如果您想要在同样的 Function 执行,那么你最好的选择是 go 与第一个选项。

参考: 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"
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM