python - 所有名称服务器都无法响应 UDP 端口 53 谷歌云函数 python 3.7 atlas mongodb
问题描述
我可以使用地址 0.0.0.0/0 在本地连接到我的 mongodb 服务器。但是,当我将代码部署到云时,我收到错误部署到谷歌云功能。
谷歌云函数与 python 3.7 (beta) atlas mongo db python lib: -pymongo -dnspython
Error: function crashed. Details:
All nameservers failed to answer the query _mongodb._tcp.**-***.gcp.mongodb.net. IN SRV: Server ***.***.***.*** UDP port 53 answered SERVFAIL
Traceback (most recent call last): File "/env/local/lib/python3.7/site-packages/pymongo/uri_parser.py", line 287, in _get_dns_srv_hosts results = resolver.query('_mongodb._tcp.' + hostname, 'SRV') File "/env/local/lib/python3.7/site-packages/dns/resolver.py", line 1132, in query raise_on_no_answer, source_port) File "/env/local/lib/python3.7/site-packages/dns/resolver.py", line 947, in query raise NoNameservers(request=request, errors=errors) dns.resolver.NoNameservers: All nameservers failed to answer the query _mongodb._tcp.**mymongodb**-r091o.gcp.mongodb.net. IN SRV: Server ***.***.***.*** UDP port 53
解决方案
终于在卡住 2 天后,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 中查看您的连接字符串。
idk 为什么不能在谷歌云函数中连接 srv 连接字符串,现在可能不支持,或者只是配置错误。
推荐阅读
- java - 线程“main”java.lang.NullPointerException 中的异常:程序编译正常,但运行时显示错误
- android-studio - 带有收音机的颤动列表视图未显示在警报对话框中
- jquery - 如何修复 VScode 中无法正常工作的 jquery 代码
- javascript - 解释正文中给定的语法:
- kentico - Kentico Poll - 如何获得多项选择题的选民人数
- html - 如何使 div 适合我的屏幕高度?
- python - Google Cloud Functions 上的 Flask `before_request` 上下文函数
- typescript - 泛型函数的条件类型:类型不可分配
- c# - C# 将 INT 转换为 DATE
- java - 如何以编程方式从 Telegram 中的 Android 应用程序共享 GPS 位置?