Récemment, AWS a mis en œuvre la compatibilité avec MongoDB version 3.6 via DocumentDB.
Document DB nécessite un certificat qui peut être téléchargé à l'adresse:
https://github.com/mongodb/mongoid/blob/master/lib/rails/generators/mongoid/config/templates/mongoid.yml
En utilisant un fichier de configuration similaire à:
https://s3-us-gov-west-1.amazonaws.com/rds-downloads/rds-GovCloud-Root-CA-2017.pem
3 Réponses :
Tout d'abord, il est important de noter que DocumentDB n'implémente qu'une compatibilité partielle avec "MongoDB 3.6" comme Amazon annonce. Vous pouvez en savoir plus sur certaines incompatibilités ici: https: //www.mongodb .com / blog / post / documents-sont-partout
Mongoid fonctionne et est testé avec le serveur MongoDB 3.6 actuel. Aucune configuration spéciale n'est nécessaire.
L'utilisation de Mongoid avec DocumentDB peut fonctionner ou peut exposer des incompatibilités / omissions dans la base de données de documents d'Amazon, en fonction des opérations exactes tentées.
Merci! Cela a fonctionné sur la plupart des tables de base de données. Mais pas pour les requêtes géospatiales. Espérons qu'un soutien sera ajouté à l'avenir.
Tout d'abord, vous devrez peut-être télécharger le bundle combiné RDS plutôt que le rds-GovCloud-Root-CA-2017.pem
. Lien: https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem
Essayez ceci comme fichier yaml:
development: clients: default: uri: mongodb://myuser:mypassword@<your_cluster_endpoint>:<cluster_port>/test?ssl=true options: ssl_ca_cert: /path/to/rds-combined-ca-bundle.pem
Quand j'ai essayé cela, j'ai eu Mongoid :: Errors :: MixedClientConfiguration: message: les options de configuration uri et standard définies pour le client: 'default'.
. Vous devez mettre toutes les options en tant que paramètres de requête sur l'URI ou basculer depuis uri do hosts et mettre toutes les options dans le yaml
Pouvez-vous élaborer, @eriese? quelles étaient les informations de connexion finales qui ont fonctionné?
@Nanofunk, j'ai dû arrêter d'utiliser DocumentDB car j'avais besoin de fonctionnalités qu'ils ne prennent pas en charge, mais voici mon mongoid.yml depuis quand je l'ai fait fonctionner. Consultez la configuration de production et faites-moi savoir si cela est utile ou si cela nécessite plus d'explications.
Exemple de configuration de travail
production: clients: default: uri: "mongodb://user:pass@db_end_point:27017/db_name?ssl=true&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false" app_name: AppName options: ssl_ca_cert: "./config/rds-combined-ca-bundle.pem" development: clients: default: uri: "mongodb://user:pass@db_end_point:27017/db_name?ssl=true&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false" app_name: AppName options: ssl_ca_cert: "./config/rds-combined-ca-bundle.pem" test: clients: default: uri: "mongodb://user:pass@db_end_point:27017/db_name?ssl=true&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false" app_name: AppName options: ssl_ca_cert: "./config/rds-combined-ca-bundle.pem"