我正在尝试使用azure Functions核心工具在笔记本电脑上本地运行azure功能。请注意,此函数配置为cosmosDB触发器
我部分受到了本教程中说明的启发
首先,我创建了一个名为MyFirstFunction的函数,其中包含以下命令(并在出现提示时插入所需的输入):
func init
func start
我生成的javascript函数是(与Azure portal为相同类型的模板函数创建的函数相同):
module.exports = function (context, documents) {
if (!!documents && documents.length > 0) {
context.log('Document Id: ', documents[0].id);
}
context.done();
}
我的生成函数。json是:
{
"bindings":
[
{
"type": "cosmosDBTrigger",
"name": "documents",
"direction": "in",
"leaseCollectionName": "leases"
}
]
}
我的孩子是本地人。设置。json是
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "node",
"AzureWebJobsStorage": "UseDevelopmentStorage=true"
}
}
给定此设置,我尝试通过执行以下操作来运行该函数:
func host start
在控制台输出中一切正常运行,直到出现错误消息:无法配置类型为cosmosDBTrigger的绑定文档。这可能表示无效的function.json属性。不知道该打电话给哪个ctor。
我错过了什么?我应该通过http POST触发函数,以:
http://localhost:{port}/admin/functions/{function_name}
正如上面链接的教程中所解释的(该函数是cosmosDB触发器),但在发生此错误后,甚至无法加载该函数。
我在本地运行cosmosDB触发器时遗漏了什么?
非常感谢。
问题出在你的本地。设置。json
和函数。json缺少cosmosdb连接字符串的必要配置。
请参见cosmosdb触发器文档。
作用json
{
"bindings":
[
{
"type": "cosmosDBTrigger",
"name": "documents",
"direction": "in",
"leaseCollectionName": "leases",
// Missed in your code
"connectionStringSetting": "CosmosDBConnectionString",
"databaseName": "<Get db name>",
"collectionName": "<Get coll name>",
"createLeaseCollectionIfNotExists": true
}
]
}
地方的设置。json
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "node",
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
//Missed in your code
"CosmosDBConnectionString":"<Get connection string from Azure portal>"
}
}
请注意,在最新版本的函数核心工具(2.0.1-beta.31)中,如果您使用
func new
创建CosmosDB触发器,则无需注册CosmosDB扩展,工具将自动安装它。
这个问题解决后,如果你遇到了另一个关于微软的错误。蔚蓝色的文件。ServiceInterop。dll
The listener for function 'Functions.CosmosDb' was unable to start.
The listener for function 'Functions.CosmosDb' was unable to start. System.Private.CoreLib: One or more errors occurred. (Unable to load DLL 'Microsoft.Azure.Documents.ServiceInterop.dll' or one of its dependencies: The specified module could not be found. (Exception from HRESULT: 0x8007007E)).
Microsoft.Azure.DocumentDB.Core: Unable to load DLL 'Microsoft.Azure.Documents.ServiceInterop.dll' or one of its dependencies: The specified module could not be found. (Exception from HRESULT: 0x8007007E).
只需安装一个软件包即可修复(请参阅本期)
func extensions install -p Microsoft.Azure.DocumentDB.Core -v 2.0.0-preview
然后一切都会好起来。
我使用服务总线触发器创建了一个azure函数,当我尝试运行该函数时,我得到了这个错误: 我为开发存储设置了local.settings.json文件 我在使用AzureWebJobsStorage的函数中有连接字符串 我不知道是什么问题。如果有任何帮助,将不胜感激。
我试图运行react-native run-android,结果出现了这个错误。
我在Visual Studio中创建了一个简单的blob触发器,init.py如下 function.json如下 local.settings。json如下所示 此代码在本地计算机上的visual studio中运行良好。但在azure portal上发布时,它无法从函数中读取blob路径。json并给出错误为 我已经使用命令发布了local.settings.json的contains。 .有
问题内容: 我正在尝试使用MySQL触发器生成错误消息。下面是我的代码: 但这总是会产生错误。我不知道错误是什么,因为它没有说任何有关错误的信息,而只是“错误”。 有什么建议吗?除此之外,有人说使用存在问题,因为它可能取决于MySQL版本。有什么建议吗? 问题答案: 该子句是信号语法的一部分-它们之间不应存在分号()。此外,它使用运算符,而不是:
我甚至才知道,即使是Docker容器也是由IP组成的。为什么会这样?有谁能帮助我理解容器是如何通过IP访问的吗? 我已经尝试了上面的JSON和ipconfig映像中所有可用的IP,但都不起作用。
理想情况下,我希望能够创建一个像.azcli这样的脚本,我可以在CosmosDB模拟器上本地运行,然后在我的devops管道中使用相同的脚本将资源上传到Azure。 这是我当前的 CLI 命令。 deploy-cosmos.azcli 我在Azure CLI文档中找不到任何提及CosmosDB模拟器的内容,并且CLI命令本身的参数似乎都无法直接指向模拟器。 https://docs.microso