1
votes

Comment utiliser AWS Document DB avec Ruby On Rails? Compatibilité avec la version 3.6?

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


0 commentaires

3 Réponses :


2
votes

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.


1 commentaires

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.



2
votes

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


3 commentaires

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.



0
votes

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"


0 commentaires