Javascript Azure函数中未拾取或存在输出绑定
让我的简单Azure函数将JSON负载转储到CosmosDB中有点困难。以下是所需的设置:Javascript Azure函数中未拾取或存在输出绑定,javascript,azure,azure-cosmosdb,azure-functions,Javascript,Azure,Azure Cosmosdb,Azure Functions,让我的简单Azure函数将JSON负载转储到CosmosDB中有点困难。以下是所需的设置: [HTTP TRIGGER] -> [JS FUNCTION] -> [INSERT JSON TO COSMOS DB] 我通过web控制台中的集成添加了cosmosDB输出绑定 我知道这部分可以工作,因为它将在运行时自动创建集合 然而,这就是我成功的终点 我在这里包括了我的代码。也许我错过了一些明显的东西: function.json { "bindings": [ {
[HTTP TRIGGER] -> [JS FUNCTION] -> [INSERT JSON TO COSMOS DB]
我通过web控制台中的集成添加了cosmosDB输出绑定
我知道这部分可以工作,因为它将在运行时自动创建集合
然而,这就是我成功的终点
我在这里包括了我的代码。也许我错过了一些明显的东西:
function.json
{
"bindings": [
{
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "req"
},
{
"type": "http",
"direction": "out",
"name": "res"
},
{
"type": "documentDB",
"name": "outputDocument",
"databaseName": "outDatabase",
"collectionName": "MyCollection",
"createIfNotExists": true,
"connection": "mydocdb_DOCUMENTDB",
"direction": "out"
}
],
"disabled": false
}
index.js
module.exports = function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
context.bindings.outputDocument = {test: "hello world"}
context.done();
};
context.log的代码段输出(context)
我还窥探了上下文变量,似乎不存在extund绑定。我希望在这里看到outputDocument:
bindings:
{ req:
{ originalUrl: 'https://log-ugly-url-here',
method: 'POST',
query: [Object],
headers: [Object],
body: [Object],
params: {},
rawBody: '{\n "name": "Azure"\n}' } },
bind: [Function],
在门户中执行此函数得到200 OK,但在我的cosmosdb集合中没有显示任何值
任何地方都不会显示错误
有人能看到我错过了什么吗
更新
建议我尝试在负载周围使用JSON.stringify(),具体如下:
然而,这并没有解决这个问题。我注意到绑定配置部分下的文档并不推荐这种策略
更新-2017年11月8日(上午10:12)
我在azure中使用Data Explorer刀片查看我的收藏中是否有结果。我决定使用机器人3T Mongo客户端。现在,当我查询集合时,我得到以下错误:
Error: error: {
"_t" : "OKMongoResponse",
"ok" : 0,
"code" : 1,
"errmsg" : "Unknown server error occurred when processing this request.",
"$err" : "Unknown server error occurred when processing this request."
}
我试图查看这个cosmosdb的日志,但没有出现错误。我也遇到了这个问题。不停地敲我的头直到我看到这个: “此时,Azure Cosmos DB触发器、输入绑定和输出绑定仅适用于SQL API和图形API帐户”
Azure中似乎有一个错误意外损坏了数据库。我也遇到了这个问题。我不断地捶着头,直到看到这个: “此时,Azure Cosmos DB触发器、输入绑定和输出绑定仅适用于SQL API和图形API帐户”
Azure中似乎存在意外损坏数据库的错误。根据本文档中的示例,来自javascript的DocDB绑定似乎需要一个字符串(在
JSON.stringify()中)
)。让我知道这是否有效。感谢您的输入。不幸的是,这也不起作用。我正在使用不同的策略更新原始问题,直到我们解决此问题。您的初始代码对我来说很好,我插入了“hello world”文档。context.log(context)
是一样的,所以这不是问题。以防万一:文档得到了自动生成的ID,也许你就是看不到?@Mikhail谢谢你尝试。我用我的mongo客户端(Robo 3T)的输出再次更新了这个问题。可能的重复基于此文档中的示例,来自javascript的DocDB绑定可能需要一个字符串(在JSON.stringify()中)
)。让我知道这是否有效。感谢您的输入。不幸的是,这也不起作用。我正在使用不同的策略更新原始问题,直到我们解决此问题。您的初始代码对我来说很好,我插入了“hello world”文档。context.log(context)
是一样的,所以这不是问题。以防万一:文档得到了自动生成的ID,也许你只是看不到它?@Mikhail谢谢你尝试一下。我用我的mongo客户端(Robo 3T)的输出再次更新了这个问题。可能是重复的
Error: error: {
"_t" : "OKMongoResponse",
"ok" : 0,
"code" : 1,
"errmsg" : "Unknown server error occurred when processing this request.",
"$err" : "Unknown server error occurred when processing this request."
}