【发布时间】:2021-02-09 16:39:58
【问题描述】:
我正在使用带有 cosmos DB 触发器的函数应用程序,在本地运行时,这种行为非常奇怪,因为我随机停止接收事件,例如与 Lease 集合的连接断开。我收到一条错误消息,指出 Blob 存储的读取操作失败,但不确定这是否相关。这是错误:
There was an error performing a read operation on the Blob Storage Secret Repository.
Please ensure the 'AzureWebJobsStorage' connection string is valid
我正在使用以下代码运行函数应用:func host start --cors * --verbose
这是我可以在控制台中看到的 CosmosDBOptions 对象:
[2021-02-09T16:17:58.305Z] CosmosDBOptions
[2021-02-09T16:17:58.307Z] {
[2021-02-09T16:17:58.307Z] "ConnectionMode": null,
[2021-02-09T16:17:58.308Z] "Protocol": null,
[2021-02-09T16:17:58.309Z] "LeaseOptions": {
[2021-02-09T16:17:58.310Z] "CheckpointFrequency": {
[2021-02-09T16:17:58.310Z] "ExplicitCheckpoint": false,
[2021-02-09T16:17:58.311Z] "ProcessedDocumentCount": null,
[2021-02-09T16:17:58.311Z] "TimeInterval": null
[2021-02-09T16:17:58.312Z] },
[2021-02-09T16:17:58.313Z] "FeedPollDelay": "00:00:05",
[2021-02-09T16:17:58.313Z] "IsAutoCheckpointEnabled": true,
[2021-02-09T16:17:58.314Z] "LeaseAcquireInterval": "00:00:13",
[2021-02-09T16:17:58.314Z] "LeaseExpirationInterval": "00:01:00",
[2021-02-09T16:17:58.315Z] "LeasePrefix": null,
[2021-02-09T16:17:58.316Z] "LeaseRenewInterval": "00:00:17"
[2021-02-09T16:17:58.316Z] }
[2021-02-09T16:17:58.323Z] }
还有我的 host.json 文件:
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
}
}
},
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[1.*, 2.0.0)"
}
}
最后,这个问题从我添加了一个共享文件夹开始,不确定它是否相关,但它真的很烦人,删除租约集合解决了暂时的问题,但它花费了大量时间并且所有其他正在运行的功能都中断了,因为我清理了所有集合。
【问题讨论】:
-
此错误与 Cosmos DB 触发器无关,而是取决于用于内部操作的 Azure 存储服务的 Functions 运行时。 Cosmos DB 触发器没有依赖关系,也没有访问任何存储帐户。删除租约集合可能与修复无关,而是与您重新启动函数有关。 CosmosDBOptions 并不真正相关,在 Trigger 的情况下重要的是 Trigger 本身的配置。
-
可能与github.com/Azure/azure-functions-durable-js/issues/…有关,您是否将
AzureWebJobsStorage正确配置为指向存储帐户或模拟器? -
我没有正确配置 AzureWebJobsStorage,我认为 Azure 存储不是本地开发的依赖项。我正在尝试使用模拟器,并会在此更新您
-
@MatiasQuaranta 将
AzureWebJobsStorage配置为 Azure 存储,但它第一次仍然可以工作,然后..Host lock lease acquired by instance ID '000000000000000000000000xxxxxxxx'这很奇怪,因为 1/2 功能正在工作。在谷歌上找到那篇建议重启系统的文章 LOL docs.microsoft.com/en-us/answers/questions/165592/… -
尝试重新启动,问题仍然存在。如何获取触发器配置?现在没有函数被触发