我开始使用 azure 函数和 azure cosmosdb (mongodb)。我试图根据条件从 cosmosdb 中获取数据,如果给定条件下没有数据可用,则写入 cosmosdb,然后执行一些后置操作。我的 azure funciton 流程是这样的
在第三步,我有代码使用pymongo与cosmosdb连接。
uri = "Mongodb connection string after creating cosmosdb"
client = pymongo.MongoClient(uri)
它给出的错误是
服务器选择超时错误:连接关闭。
我是否需要添加一些权限来读写数据库或其他一些设置,以使之间的连接 function app
和 cosmos db
.
需要帮助
从评论来看,你使用的是防火墙。
问题是Azure Functions只有在某些主机型号中才有专用IP,见 https:/docs.microsoft.comen-usazureazure-functionsfunctions-scale。 以获得完整的细节。
如果你有防火墙,你需要确保代码运行的IP是白名单。有些主机型号不提供静态 IP,所以无法做到这一点。
Azure Cosmos DB也提供了一个允许所有Azure服务的防火墙设置。
另一种选择是虚拟网络,但虚拟网络也不是所有Functions托管计划都能使用。
听起来,如果你不想对所有Azure服务开放,可能需要Premium计划的Functions来支持这个功能。