Azure Function Runtime 版本:2.0.11888.0(测试版)无法连接到 cosmosDB
Posted
技术标签:
【中文标题】Azure Function Runtime 版本:2.0.11888.0(测试版)无法连接到 cosmosDB【英文标题】:Azure Function Runtime version: 2.0.11888.0 (beta) become connot able to connect to cosmosDB 【发布时间】:2018-12-05 19:34:16 【问题描述】:我正在开发简单的 node.js 代码,用于使用 http 触发器函数通过 Azure 函数应用程序将新文档插入 cosmosDB。这只是从http的参数中获取输入值并输出到cosmosDB(SQL api)。大约在过去 2 周内,它成功运行,但现在面临内部服务器错误。这就是为什么?是否影响 azure 函数的运行时小版本更新?
->function.json
"bindings": [
"authLevel": "function",
"type": "httpTrigger",
"direction": "in",
"name": "req"
,
"name": "outputDocument",
"type": "cosmosDB",
"databaseName": "ToDoList",
"collectionName": "Items",
"createIfNotExists": true,
"connectionStringSetting": "COSMOSDB_CONNECTION",
"direction": "out"
]
->index.js
module.exports = function (context, req)
context.bindings.outputDocument = JSON.stringify(
name: req.query.name
);
context.done();
;
->浏览错误
INTERNAL SERVER ERROR
【问题讨论】:
【参考方案1】:你说得对,函数运行时更新(以2.0.11857
开头)对 javascript 函数有一个重大更改。看到这个issue comment。
我们将弃用对 Node v6 的支持,这可能会影响已部署的函数应用。请将应用设置中的 WEBSITE_NODE_DEFAULT_VERSION 更改为 >=8.4.0 的 8.x 版本(例如:8.11.1)。
已经做了一些测试,如果我将WEBSITE_NODE_DEFAULT_VERSION
保留为6.5.0
,它确实会导致内部服务器错误。
在2.0.11857
发布之前,WEBSITE_NODE_DEFAULT_VERSION
在 v1 和 v2 函数中都是 6.5.0
。之后,当我们将函数运行时从 ~1 升级到 beta 时,WEBSITE_NODE_DEFAULT_VERSION
会自动更改为 8.11.1
。
更新
节点版本更改对您不起作用,可能是因为 cosmosdb 扩展被破坏。当我无法在我这边重现您的问题时,您可以尝试一下。
重新安装扩展的步骤:
-
停止您的函数应用程序。
访问
https://<functionappname>.scm.azurewebsites.net/DebugConsole
并导航到D:\home\site\wwwroot
。
删除文件夹bin
和extension.csproj
。
返回功能门户并创建 cosmosdb 触发器以再次安装扩展。
启动您的函数应用进行测试。
【讨论】:
你好....你的意思是你已经连接到 cosmosDB 只是在 node.js 版本上对齐?但是我不能。 ;( @KhinThet 是的,节点版本设置为8.11.1
,我可以连接到 cosmosDB 并输出文档。您能否重新启动您的功能应用并重试?
是的,我确实重新启动了。但还没有成功。无论如何,我的应用运行时是 2.0.11888。
@KhinThet 您的功能似乎在其他地方损坏了。您的日志中有详细的错误信息吗?如果可以接受,可以尝试新建一个函数应用进行测试。
抱歉我的回复晚了。我总是每天至少尝试一次这个过程,但对我来说仍然没有成功。我现在使用的是 azure logic apps,它是 azure function app 的简单实例。如果可以的话,我也想通过 azure function app 取得成功。以上是关于Azure Function Runtime 版本:2.0.11888.0(测试版)无法连接到 cosmosDB的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Azure Function App Startup 中 DI 自定义对象
错误:将 Function 部署到 Azure 后,无法加载文件或程序集“System.ServiceModel,版本 = 4.0.0.0”
部署到 Azure 网站时,您必须向 System.Runtime... 添加引用
Azure cspack.exe 引发 System.Runtime.Remoting.RemotingException
Azure Function v2 引用了 Newtonsoft.Json 版本高于 Microsoft.NET.Sdk.Functions 的项目