azure - 无法创建集合信息 - 尝试在本地测试 Cosmos DB 触发器时出错

标签 azure azure-functions azure-cosmosdb

我正在测试开发一个 Azure Function 来读取 Cosmos DB 数据库的更改源。我已经从 Azure 门户创建了这样的函数,但我想使用 VS 或 VS Code 来执行此操作。我使用 Azure Function Core Tools v2.0.3 设置了环境,但是当我尝试测试该函数时,出现以下错误:

[10/9/2018 4:33:34 PM] Error indexing method 'Functions.workordersTrigger'

[10/9/2018 4:33:34 PM] Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.workordersTrigger'. Microsoft.Azure.WebJobs.Extensions.CosmosDB: Cannot create Collection Information for workorders in database htm with lease wo_leases in database htm : Entity with the specified id does not exist in the system.

数据库中存在“workorders”和“wo_leases”集合。如果我只是使用简单的 HTTP 触发器创建一个函数,它就可以正常工作,并且我可以在 VS Code 中进行调试。这似乎是 CosmosDB 触发器的问题。谁能指出我正确的方向?

最佳答案

如果出现以下情况,则会出现错误消息:

  1. 指定数据库中的目标帐户中不存在任何集合
  2. 您的帐户有一条防火墙规则(虚拟网络或 IP 规则),会阻止对您当前工作站的访问。

对于#1,验证连接字符串是否指向正确的帐户,并且您可以看到数据库中存在集合(为此,您可以使用 Azure 门户或使用连接字符串浏览 Cosmos Explorer)。

对于#2,请验证帐户中是否存在阻止您访问的规则。您可以禁用防火墙规则或添加您当前的 IP 地址(门户中有一个快速链接)。

关于azure - 无法创建集合信息 - 尝试在本地测试 Cosmos DB 触发器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52725891/

相关文章:

c# - Azure ScheduleNewOrchestrationInstanceAsync - 输入大小

python - 为什么我的 python 定时器触发函数没有在正确的时间运行?

azure - 使用 Azure Cosmos DB 的 Bicep 模板创建多个角色定义和分配

nosql - 从 DocumentDB 联接查询中获取所有字段

c# - 由于 docker 错误,无法将 .net 5.0 和 6.0 发布到 Azure 容器注册表

Azure AD B2C - 支持守护程序应用程序以及 B2C 客户端(例如网页和 native 移动应用程序)

asp.net - Azure 应用服务无法访问 Azure SQL DB,但本地计算机可以工作。允许所有 IP 规则已到位。

Azure函数: Autoscale is currently not available for this resource

c# - 通过 C# 代码扩展 azure 函数

mongodb - Cosmos DB 与 MongoDB 上的不同更新插入行为