问题描述
我可以本地连接到地址为 0.0.0.0/0 的我的 mongodb 服务器.但是,当我将代码部署到云时,我收到错误部署到谷歌云功能.
i can connect locally to my mongodb server with the address 0.0.0.0/0. However, when I deploy my code to the cloud I get the error deploy to google cloud function.
带有python 3.7(测试版)的谷歌云功能阿特拉斯 mongo 数据库蟒蛇库:-pymongo-dnspython
google cloud function with python 3.7 (beta)atlas mongo dbpython lib:-pymongo-dnspython
错误:函数崩溃.细节:所有名称服务器都未能回答查询 _mongodb._tcp.**-***.gcp.mongodb.net.IN SRV:服务器 ***.***.***.*** UDP 端口 53 已回答 SERVFAIL
Traceback(最近一次调用最后):文件/env/local/lib/python3.7/site-packages/pymongo/uri_parser.py",第 287 行,在 _get_dns_srv_hosts 结果 = resolver.query('_mongodb._tcp.' + 主机名,'SRV')文件/env/local/lib/python3.7/site-packages/dns/resolver.py",第 1132 行,查询 raise_on_no_answer,source_port)文件/env/local/lib/python3.7/site-packages/dns/resolver.py",第 947 行,在查询中引发 NoNameservers(request=request,errors=errors) dns.resolver.NoNameservers:所有名称服务器都未能回答查询 _mongodb._tcp.**mymongodb**-r091o.gcp.mongodb.net.IN SRV:服务器 ***.***.***.*** UDP 端口 53
推荐答案
终于卡住了2天,goblok banget semaleman
finally after stuck 2 day, goblok banget semaleman
只需更改连接来自
SRV 连接字符串(3.6+ 驱动)
到
标准连接字符串(3.4+驱动)
mongodb://<USERNAME>:<PASSWORD>@<DATABASE>-shard-00-00-r091o.gcp.mongodb.net:27017,<COLLECTION>-shard-00-01-r091o.gcp.mongodb.net:27017,<COLLECTION>-shard-00-02-r091o.gcp.mongodb.net:27017/test?ssl=true&replicaSet=<COLLECTION>-shard-0&authSource=admin&retryWrites=true
或者您可以在 atlas mongodb 中查看您的连接字符串.
or you can see your connection string in atlas mongodb.
知道为什么在谷歌云功能中无法使用 srv 连接字符串,现在可能不支持,或者只是配置错误.
idk why can`t connect with srv connection string in google cloud functions, maybe not suppot now, or just misconfiguration.
这篇关于所有名称服务器都无法响应 UDP 端口 53 谷歌云函数 python 3.7 atlas mongodb的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!