Javascript Azure Functions 中未拾取或存在的输出绑定
Posted
技术标签:
【中文标题】Javascript Azure Functions 中未拾取或存在的输出绑定【英文标题】:Output bindings not picked up or present in Javascript Azure Functions 【发布时间】:2018-04-20 12:58:53 【问题描述】:让我的简单 Azure 函数将 JSON 有效负载转储到 CosmosDB 时遇到了一些困难。这是所需的设置:
[HTTP TRIGGER] -> [JS FUNCTION] -> [INSERT JSON TO COSMOS DB]
我在 web 控制台中通过 Integrate 添加了一个 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) 的 sn-p 输出 我还查看了上下文变量,似乎没有出站绑定。我本来希望在这里看到 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 集合中没有显示任何值。
任何地方都没有显示错误。
谁能看到我可能错过了什么?
更新 根据this document,建议我尝试在有效负载周围使用 JSON.stringify():
context.bindings.outputDocument = JSON.stringify(test: "hello world");
但是,这并没有解决问题。我注意到绑定配置部分下的文档不推荐这种策略。
更新 - 2017 年 11 月 8 日(上午 10:12)
我在 azure 中使用数据资源管理器刀片来查看我的集合中是否有结果。我决定使用 Robo 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 的日志,但未显示任何错误。
【问题讨论】:
根据本文档中的示例,来自 javascript 的 DocDB 绑定似乎需要一个字符串(在JSON.stringify()
中)。让我知道这是否有效。 doc here
感谢您的意见。不幸的是,这也不起作用。我正在用不同的策略更新原始问题,直到我们解决这个问题。
您的初始代码对我来说工作得很好,我插入了“hello world”文档。 context.log(context)
是一样的,所以没问题。以防万一:文档获得了自动生成的 ID,也许您只是没有看到它?
@Mikhail 感谢您试用。我用我的 mongo 客户端(Robo 3T)的输出再次更新了这个问题。
Azure Function with Cosmos MongoDB integration not saving的可能重复
【参考方案1】:
我也遇到过这个。一直在敲我的头,直到我看到这个:
https://docs.microsoft.com/en-us/azure/azure-functions/functions-integrate-store-unstructured-data-cosmosdb
“目前,Azure Cosmos DB 触发器、输入绑定和输出绑定仅适用于 SQL API 和 Graph API 帐户”
Azure 中似乎存在意外损坏数据库的错误。
【讨论】:
以上是关于Javascript Azure Functions 中未拾取或存在的输出绑定的主要内容,如果未能解决你的问题,请参考以下文章
Azure 应用服务Python fastapi Function在Azure
如何使用 Azure Function 在 Azure 文件共享中解压缩文件?
如何使用 Azure 数据工厂使用私有终结点访问 Azure Function?
Azure Function Python 写入 Azure DataLake Gen2
使用托管标识从 Azure Logic 应用向 Azure Function 进行身份验证
Azure 应用服务Azure Function HTTP 触发后, 230秒就超时。而其他方式触发的Function, 执行5分钟后也超时,如何调整超时时间?