首页 > 解决方案 > Azure 函数触发器不适用于 cosmosdb 的不同资源 ID

问题描述

我正在尝试创建一个 azure 函数 cosmosdbtrigger 。与我的 azure 函数相比,我的 cosmosdb 位于不同的资源 ID 中。但是我的功能没有被触发。

azure 函数和 cosmosdb 应该在同一个资源 id 中是否有任何限制。如果没有,是否需要为不同的资源 ID 进行任何其他设置。

我的天蓝色函数在运行在 linux 应用服务上的 python 上。从我了解到的 azure 文档中,我不能将 windows 和 linux 的应用程序服务混合为当前的限制。

有关当前限制的 Azure 文档

我需要使用 azure 函数 Python 来检查 azure cosomos db 更改提要。

这是我的 function.json 用于连接到 cosmosdb 集合触发器..

{
  "scriptFile": "__init__.py",
  "bindings": [
    {
      "type": "cosmosDBTrigger",
      "name": "documents",
      "direction": "in",
      "leaseCollectionName": "leases1",
      "connectionStringSetting": "devcosmosdb_DOCUMENTDB",
      "databaseName": "devcosmosdb",
      "collectionName": "testCollection",
      "createLeaseCollectionIfNotExists": "true"
    }
  ]
}

标签: azureazure-functionsazure-cosmosdbazure-cosmosdb-mongoapi

解决方案


没有这样的限制。

请再次检查databaseNamecollectionNameconnectionStringSetting

如果您已将该功能部署到 Azure 门户。您需要将 connectionStringSetting 添加到应用程序设置。在您的场景中,您应该像这样添加 connectionString

在此处输入图像描述

您可以在cosmosdb 帐户的Keys部分下找到 connectionString。

在此处输入图像描述

另外,请检查防火墙设置。

在此处输入图像描述


推荐阅读