我正在尝试使用pymongo从我的本地计算机连接到我们的AWS DocumentDB示例。我们当前的设置是在ec2示例上使用ssh隧道,然后连接到AWS DocumentDB。这部分工作正常,因为我可以通过第三方工具连接到它。(例如Studio 3 T-创建用户没有问题)。
在每个第三方工具中,我都上传了rds-combined-ca-bundle.pem文件,我想这可能是我卡住的地方。
隧道根据bastion主机上的日志工作。
我已经尝试了下面代码的几个变体,但它只是超时。
目前使用的是Pymongo 4.3.3版本。
此外,对于其他信息,我想在我的桌面上测试这一点,但最终将其移动到Lambda。
任何帮助是非常感谢!!
当前代码-
import pymongo
import sshtunnel
global_pem_key="c:\\users\\user\\pathto\\rds-combined-ca-bundle.pem"
ssh_host = 'external IP'
ssh_username = 'sshUser'
database_username = 'Uname'
database_password = 'Pword'
database_name = 'dbname'
tunnel = sshtunnel.SSHTunnelForwarder(
(ssh_host, 22),
ssh_username=ssh_username,
ssh_pkey="c:\\users\\user\\path\\sshpemkey",
remote_bind_address=('127.0.0.1', 3306)
)
tunnel.start()
client=pymongo.MongoClient("mongodb://dbuname:dbpass@dbName.cluster-***.*-*-*.docdb.amazonaws.com:27017/?ssl=true&ssl_ca_certs=rds-combined-ca-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false",
tlsInsecure=True,
directConnection=True,
tls=True,
tlsCAFile='c:\\users\\user\\\dpath\\rds-combined-ca-bundle.pem'
)
print(client.list_database_names())
tunnel.close()
1条答案
按热度按时间fhity93d1#
试试这个代码片段: