所有名称服务器无法应答UDP端口53 Google云函数python 3.7 atlas mongodb

所有名称服务器无法应答UDP端口53 Google云函数python 3.7 atlas mongodb,python,mongodb,google-cloud-functions,mongodb-atlas,Python,Mongodb,Google Cloud Functions,Mongodb Atlas,我可以在本地连接到地址为0.0.0.0/0的mongodb服务器。然而,当我将代码部署到云端时,我得到了deploytogooglecloud函数的错误 使用python 3.7(beta版)的谷歌云功能 阿特拉斯蒙戈数据库 python库: -皮蒙戈 -dnspython 错误:函数崩溃。细节: 所有名称服务器都无法回答查询_mongodb.\u tcp.*-***.gcp.mongodb.net。在SRV中:服务器***********UDP端口53已应答SERVFAIL Traceback

我可以在本地连接到地址为0.0.0.0/0的mongodb服务器。然而,当我将代码部署到云端时,我得到了deploytogooglecloud函数的错误

使用python 3.7(beta版)的谷歌云功能 阿特拉斯蒙戈数据库 python库: -皮蒙戈 -dnspython

错误:函数崩溃。细节:
所有名称服务器都无法回答查询_mongodb.\u tcp.*-***.gcp.mongodb.net。在SRV中:服务器***********UDP端口53已应答SERVFAIL


Traceback(最近一次调用):文件“/env/local/lib/python3.7/site packages/pymongo/uri_parser.py”,第287行,在“获取dns_srv_hosts results=resolver.query”(“'u mongodb.'u tcp.'+主机名,'srv')文件“/env/local/lib/python3.7/site packages/dns/resolver.py”,第1132行,在“无答案的源端口”文件的查询提升中“/env/local/lib/python3.7/site packages/dns/resolver.py”,第947行,在query-raise-NoNameservers中(请求=请求,错误=错误)dns.resolver.NoNameservers:所有名称服务器都无法回答查询_mongodb.\u tcp.*mymongodb**-r091o.gcp.mongodb.net。在SRV中:服务器*****.**.**.**.**UDP端口53

终于在卡住2天后,goblok banget semaleman

只需更换连接 从

SRV连接串(3.6+驱动器)

标准连接字符串(3.4+驱动器)

mongodb://:@-shard-00-00-r091o.gcp.mongodb.net:27017-shard-00-01-r091o.gcp.mongodb.net:27017-shard-00-02-r091o.gcp.mongodb.net:27017/test?ssl=true&replicset=-shard-0&authSource=admin&retryWrites=true

或者您可以在atlas mongodb中看到您的连接字符串


idk为什么无法在谷歌云功能中连接srv连接字符串,可能现在不支持,或者只是配置错误。

这可能会有帮助,我在Windows上遇到过这个错误,当我尝试使用
MongoDB+srv://
语法连接MongoDB时,如果我通过WSL或Linux尝试,效果很好机器


我想把你的问题改成这样:“我可以用地址0.0.0.0/0在本地连接到我的mongo db服务器。然而,当我将代码部署到云端时,我得到了一个错误:…“我没有mongo db方面的经验,但我正试图为其他人澄清这个问题。我不确定我是否有帮助……事实上,我认为我有一个解决方案。可以通过安装使用
mongodb+srv://
URI;请参阅。
import dns.resolver
dns.resolver.default_resolver=dns.resolver.Resolver(configure=False)
dns.resolver.default_resolver.nameservers=['8.8.8.8'] # this is a google public dns server,  use whatever dns server you like here
# as a test, dns.resolver.query('www.google.com') should return an answer, not an exception