Flask с AWS DocumentDB

Я пытаюсь подключиться к своей AWS DocumentDB с помощью flask и flask_pymongo. TLS включен для моего кластера AWS. Я могу подключиться к БД с помощью оболочки python и просто pymongo, но когда я делаю следующее в колбе, я не могу заставить его подключиться. Приведенный ниже URI настроен в моем приложении для моего имени пользователя, пароля и кластера. И файл pem находится в том же каталоге, что и app.py. Есть какие-нибудь предложения?

from flask import Flask, jsonify
from flask_restful import Resource, Api
from flask_pymongo import PyMongo

app = Flask(__name__)

app.config['MONGO_DBNAME'] = 'mydb'
app.config['MONGO_URI'] = 'mongodb://<dbusername>:<dbpassword>@mycluster.node.us-east-1.docdb.amazonaws.com:27017/?ssl=true&ssl_ca_certs=rds-combined-ca-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred'

mongo = PyMongo(app)
api = Api(app)

person bvmcode    schedule 05.07.2019    source источник


Ответы (1)


Если вы используете последнюю версию Flask-PyMongo (2.0 или новее), MONGO_DBNAME не будет иметь никакого эффекта. В версии 2.0 вы должны указать имя базы данных в URI (в данном случае это будет 'mongodb://<dbusername>:<dbpassword>@mycluster.node.us-east-1.docdb.amazonaws.com:27017/mydb?ssl=true&ssl_ca_certs=rds-combined-ca-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred'.

person dcrosta    schedule 05.07.2019