Configurer les variables d'environnement
Cette page décrit la partie préparation du processus de migration, qui consiste à configurer les variables d'environnement dans votre environnement local. À partir de cet environnement, vous exécuterez ultérieurement les commandes qui configurent et actionnent le processus de migration. Chacune de ces commandes utilisera une ou plusieurs variables d'environnement que vous définissez à cette étape.
À ce stade, vous allez effectuer les opérations suivantes :
Définissez les variables d'environnement communes à toutes les sources compatibles avec MongoDB.
Définissez les variables d'environnement spécifiques au type de base de données source compatible avec MongoDB et à la façon dont elle est déployée.
Définir des variables d'environnement courantes
Le modèle suivant permet de configurer les variables d'environnement courantes à toutes les sources compatibles avec MongoDB. Vous ajouterez ultérieurement des variables supplémentaires spécifiques à votre source MongoDB.
Le modèle configure l'ensemble de variables d'environnement suivant :
- Paramètres généraux applicables à l'ensemble de la procédure de migration.
- Paramètres de connexion Datastream utilisés pour créer et gérer des profils de connexion Datastream.
- Paramètres de placement des données Datastream pour gérer le placement des données dans le bucket Cloud Storage pendant la migration.
- Paramètres du modèle Dataflow pour gérer le pipeline qui copiera les données du bucket Cloud Storage dans votre base de données Firestore avec compatibilité MongoDB.
- Paramètres supplémentaires du modèle Dataflow : ces paramètres sont dérivés d'autres paramètres que vous spécifiez. Vous n'avez pas besoin de les définir.
- Paramètres de connexion Firestore pour établir une connexion à votre base de données Firestore de destination compatible avec MongoDB.
Définissez les variables suivantes avant de passer aux autres commandes de ce guide :
# General parameters
PROJECT_ID="PROJECT_ID"
LOCATION="LOCATION"
# Datastream connection parameters
SRC_CONNECTION_PROFILE_NAME="SRC_CONNECTION_PROFILE_NAME"
DST_CONNECTION_PROFILE_NAME="DST_CONNECTION_PROFILE_NAME"
DATASTREAM_NAME="DATASTREAM_NAME"
# Datastream data placement parameters
GCS_BUCKET_NAME="GCS_BUCKET_NAME"
GCS_BUCKET_ROOT_PATH="GCS_BUCKET_ROOT_PATH"
GCS_BUCKET_SUB_PATH="GCS_BUCKET_SUB_PATH"
# Dataflow template parameters
GCS_BUCKET_TEMPLATE_PATH="GCS_BUCKET_TEMPLATE_PATH"
NUM_WORKERS=NUM_WORKERS
MAX_WORKERS=MAX_WORKERS
WORKER_TYPE="WORKER_TYPE"
# Additional Dataflow template parameters: these are initialized
# from parameters above and don't require further customization
INPUT_FILE_LOCATION="gs://${GCS_BUCKET_NAME}/${GCS_BUCKET_ROOT_PATH}/${GCS_BUCKET_SUB_PATH}/"
TEMP_OUTPUT_LOCATION="gs://${GCS_BUCKET_NAME}/${GCS_BUCKET_ROOT_PATH}/tmp"
DLQ_LOCATION="gs://${GCS_BUCKET_NAME}/${GCS_BUCKET_ROOT_PATH}/dql"
STAGING_LOCATION="gs://${GCS_BUCKET_NAME}/${GCS_BUCKET_ROOT_PATH}/staging"
# Firestore connection parameters
FIRESTORE_CONNECTION_URI="FIRESTORE_CONNECTION_URI"
FIRESTORE_DATABASE_NAME="FIRESTORE_DATABASE_NAME"
Remplacez les éléments suivants :
Paramètres généraux :
PROJECT_ID : ID du projet du projet Google Cloud dans lequel le pipeline de migration s'exécutera. Exemple :
example-project
.Il est possible d'utiliser une base de données Firestore compatible avec MongoDB de destination située dans un autre projet. Toutefois, ce guide suppose que toutes les ressources concernées se trouvent dans le même projet.
LOCATION : région dans laquelle le pipeline de migration s'exécutera. Exemples :
nam5
,us-central1
.Nous vous recommandons d'utiliser la même région que la base de données Firestore compatible avec MongoDB de destination.
Paramètres de connexion Datastream :
SRC_CONNECTION_PROFILE_NAME : nom lisible du profil de connexion Datastream de la base de données source compatible avec MongoDB. Exemple :
source-mongo-profile
.Vous créerez un profil de connexion avec ce nom ultérieurement.
DST_CONNECTION_PROFILE_NAME : nom lisible du profil de connexion Datastream pour le bucket Cloud Storage de destination. Exemple :
destination-gcs-profile
.Vous créerez un profil de connexion de destination portant ce nom ultérieurement.
DATASTREAM_NAME : nom lisible d'un flux Datastream qui transférera les données de la base de données source compatible avec MongoDB vers Cloud Storage. Exemple :
mongo-to-gcs-stream
.Vous créerez ce flux ultérieurement.
Paramètres de placement des données Datastream :
GCS_BUCKET_NAME : nom du bucket Cloud Storage que vous avez créé précédemment. Exemple :
mongo-migration-bucket
.Cette valeur sera utilisée ultérieurement pour créer un profil de connexion de destination.
GCS_BUCKET_ROOT_PATH : nom du répertoire de premier niveau dans le bucket Cloud Storage pour placer les données intermédiaires lors de la migration. Exemple :
mongo-migration-root
.Cette valeur sera utilisée ultérieurement pour créer un profil de connexion de destination.
GCS_BUCKET_TEMPLATE_PATH : sous-chemin d'accès dans le répertoire GCS_BUCKET_ROOT_PATH pour une instance Datastream donnée.
Le même profil de connexion de destination peut être utilisé pour plusieurs exportations vers Cloud Storage. Toutefois, vous devez désigner un sous-chemin unique pour chaque migration. Exemple :
mongo-migration-data-0
.Cette valeur sera utilisée ultérieurement pour créer un flux.
Paramètres du modèle Dataflow :
GCS_BUCKET_TEMPLATE_PATH : sous-chemin d'accès dans le répertoire GCS_BUCKET_ROOT_PATH où un modèle Dataflow sera mis en scène. Exemple :
mongo-migration-template-path
.NUM_WORKERS : nombre initial de nœuds de calcul pour exécuter le modèle Dataflow. Exemple :
2
.MAX_WORKERS : nombre maximal de nœuds de calcul pour exécuter le modèle Dataflow. Exemple :
8
.WORKER_TYPE : type d'instance Compute Engine à utiliser pour le job Dataflow. Le type de machine recommandé est
e2-highmem-8
.
Paramètres de connexion Firestore :
FIRESTORE_DATABASE_NAME : nom de la base de données Firestore compatible avec MongoDB vers laquelle vous migrez les données. Exemple :
firestore-database-name
.FIRESTORE_CONNECTION_URI : chaîne d'URI de connexion pour la base de données Firestore compatible avec MongoDB.
Exemple :
mongodb://USERNAME:PASSWORD@CONNECTION_STRING:443/FIRESTORE_DATABASE_NAME?loadBalanced=true&authMechanism=SCRAM-SHA-256&tls=true&retryWrites=false
.
Définir des variables d'environnement spécifiques au type de base de données source
Les modèles suivants permettent de configurer des variables d'environnement spécifiques au type de base de données source compatible avec MongoDB et à la façon dont elle est déployée.
MongoDB sur Compute Engine
Les variables suivantes sont spécifiques aux bases de données sources MongoDB situées dans un cluster autogéré (Compute Engine). Définissez-les avant de passer aux autres commandes de ce guide :
# Google Compute Engine VM MongoDB Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_IP_ADDRESS="MONGODB_IP_ADDRESS"
REPLICA_SET="REPLICA_SET"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
PRIVATE_CONNECTION_NAME="PRIVATE_CONNECTION_NAME"
Remplacez les éléments suivants :
MONGODB_USERNAME : nom d'utilisateur de la base de données source compatible avec MongoDB. Exemple :
mongouser
.MONGODB_PASSWORD : mot de passe de la base de données source compatible avec MongoDB. Exemple :
mongopassword
.MONGODB_IP_ADDRESS : spécifiez l'adresse IP interne, ainsi que le numéro de port, de la VM qui héberge votre serveur MongoDB. Exemple :
10.0.0.1:27017
.Pour les déploiements qui ne sont pas fragmentés, mais configurés avec des ensembles de répliques, l'adresse IP de n'importe quelle réplique de l'ensemble est valide. Toutefois, nous vous recommandons d'utiliser l'un des réplicas secondaires.
Pour les clusters fragmentés, spécifiez l'adresse de l'un de vos serveurs mongos.
(Uniquement pour les clusters avec des ensembles de répliquas non fragmentés) REPLICA_SET : spécifiez le nom de l'ensemble de répliquas à utiliser pour le processus de migration. Exemple :
rs0
.MONGODB_DATABASE_NAME : nom de la base de données source compatible avec MongoDB. Exemple :
source_db
.PRIVATE_CONNECTION_NAME : ID de la configuration de connectivité privée que vous avez créée précédemment. Exemple :
pc_name
.
MongoDB via SSH
Si vous gérez un déploiement MongoDB privé en dehors de Compute Engine, Datastream permet de se connecter à votre base de données source via un tunnel SSH de transfert. Pour en savoir plus, consultez Tunnels SSH.
Les variables suivantes sont spécifiques à la connexion aux bases de données sources MongoDB via un tunnel SSH de transfert. Définissez-les avant de passer aux autres commandes de ce guide :
# MongoDB over an SSH Tunnel Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_IP_ADDRESS="MONGODB_IP_ADDRESS"
REPLICA_SET="REPLICA_SET"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
BASTION_IP_ADDRESS="BASTION_IP_ADDRESS"
BASTION_SSH_PORT="BASTION_SSH_PORT"
BASTION_SSH_USERNAME="BASTION_SSH_USERNAME"
BASTION_SSH_PRIVATE_KEY="BASTION_SSH_PRIVATE_KEY"
Remplacez les éléments suivants :
MONGODB_USERNAME : nom d'utilisateur de la base de données source compatible avec MongoDB. Exemple :
mongouser
.MONGODB_PASSWORD : mot de passe de la base de données source compatible avec MongoDB. Exemple :
mongopassword
.MONGODB_IP_ADDRESS : spécifiez l'adresse IP interne, ainsi que le numéro de port, de la VM qui héberge votre serveur MongoDB. Exemple :
10.0.0.1:27017
.Pour les déploiements qui ne sont pas fragmentés, mais configurés avec des ensembles de répliques, l'adresse IP de n'importe quelle réplique de l'ensemble est valide. Toutefois, nous vous recommandons d'utiliser l'un des réplicas secondaires.
Pour les clusters fragmentés, spécifiez l'adresse de l'un de vos serveurs mongos.
(Uniquement pour les clusters avec des ensembles de répliquas non fragmentés) REPLICA_SET : spécifiez le nom de l'ensemble de répliquas à utiliser pour le processus de migration. Exemple :
rs0
.MONGODB_DATABASE_NAME : nom de la base de données source compatible avec MongoDB. Exemple :
source_db
.BASTION_IP_ADDRESS : adresse de l'hôte sur votre réseau qui peut accepter une connexion SSH. Il peut s'agir du serveur MongoDB lui-même ou d'un hôte bastion désigné qui permet l'accès SSH depuis un réseau public et fournit également une connectivité interne au serveur MongoDB réel. Exemple :
30.0.0.1
.BASTION_SSH_PORT : port SSH sur l'hôte. Exemple :
22
.BASTION_SSH_USERNAME : nom d'utilisateur pour la connexion SSH.
BASTION_SSH_PRIVATE_KEY : charge utile complète de la clé privée SSH. Par exemple, pour une clé RSA, cette charge utile inclurait l'en-tête
-----BEGIN RSA PRIVATE KEY-----
et le pied de page-----END RSA PRIVATE KEY-----
. Exemple :BASTION_SSH_PRIVATE_KEY=$(cat ~/.ssh/private_key)
Amazon DocumentDB
Assurez-vous de disposer de la clé privée SSH pour l'instance Amazon EC2 qui fournira la connexion au cluster DocumentDB. Assurez-vous également d'avoir téléchargé le groupe de certificats spécifique à la région, comme décrit dans la section Configuration des ressources, et d'avoir extrait et validé un certificat spécifique.
Les variables suivantes sont spécifiques à la connexion aux bases de données sources DocumentDB via un tunnel SSH de transfert. Définissez-les avant de passer aux autres commandes de ce guide :
# DocumentDB over an EC2 SSH Tunnel Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST_ADDRESS"
REPLICA_SET="REPLICA_SET"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
BASTION_IP_ADDRESS="BASTION_IP_ADDRESS"
BASTION_SSH_PORT="BASTION_SSH_PORT"
BASTION_SSH_USERNAME="BASTION_SSH_USERNAME"
BASTION_SSH_PRIVATE_KEY="BASTION_SSH_PRIVATE_KEY"
DOCUMENT_DB_CA_CERTIFICATE="DOCUMENT_DB_CA_CERTIFICATE"
Remplacez les éléments suivants :
MONGODB_USERNAME : nom d'utilisateur de la base de données source DocumentDB. Exemple :
mongouser
.MONGODB_PASSWORD : mot de passe de la base de données source DocumentDB. Exemple :
mongopassword
.MONGODB_HOST_ADDRESS : adresse du cluster DocumentDB. Exemple :
mydocumentdb.cluster-abcd.us-east-2.docdb.amazonaws.com:27017
.REPLICA_SET : spécifiez le nom du groupe de répliquas à utiliser pour le processus de migration. Exemple :
rs0
.MONGODB_DATABASE_NAME : nom de la base de données source DocumentDB. Exemple :
source_db
.BASTION_IP_ADDRESS : adresse IP externe de l'instance EC2 qui permet l'accès SSH à partir d'un réseau public et fournit également une connectivité interne au cluster DocumentDB dans votre Amazon VPC. Exemple :
30.0.0.1
.BASTION_SSH_PORT : port SSH sur l'hôte. Exemple :
22
.BASTION_SSH_USERNAME : nom d'utilisateur pour la connexion SSH.
BASTION_SSH_PRIVATE_KEY : charge utile complète de la clé privée SSH. Par exemple, pour une clé RSA, cette charge utile inclurait l'en-tête
-----BEGIN RSA PRIVATE KEY-----
et le pied de page-----END RSA PRIVATE KEY-----
. Exemple :BASTION_SSH_PRIVATE_KEY=$(cat ~/ec2_bastion_host.pem)
DOCUMENT_DB_CA_CERTIFICATE : charge utile complète du certificat d'autorité de certification DocumentDB. Cette charge utile doit inclure l'en-tête
-----BEGIN CERTIFICATE-----
et le pied de page-----END CERTIFICATE-----
, et ne doit contenir qu'un seul certificat. Exemple :BASTION_SSH_PRIVATE_KEY=$(cat ~/us-east-1.pem)
Azure Cosmos DB
Les variables suivantes sont spécifiques aux bases de données sources Azure Cosmos DB. Définissez-les avant de passer aux autres commandes de ce guide :
# Azure Cosmos DB Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST_ADDRESS"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
Remplacez les éléments suivants :
- MONGODB_USERNAME : nom d'utilisateur de la base de données source compatible avec MongoDB. Exemple :
mongouser
. - MONGODB_PASSWORD : mot de passe de la base de données source compatible avec MongoDB. Exemple :
mongopassword
. - MONGODB_HOST_ADDRESS : nom d'hôte de la base de données source compatible avec MongoDB. La valeur doit respecter le format de connexion SRV MongoDB.
Exemple :
host.cosmos.azure.example.com
. - MONGODB_DATABASE_NAME : nom de la base de données source compatible avec MongoDB. Exemple :
source_db
.
MongoDB Atlas
Les variables suivantes sont spécifiques aux bases de données sources MongoDB Atlas. Définissez-les avant de passer aux autres commandes de ce guide :
# MongoDB Atlas Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"
Remplacez les éléments suivants :
- MONGODB_USERNAME : nom d'utilisateur de la base de données source compatible avec MongoDB. Exemple :
mongouser
. - MONGODB_PASSWORD : mot de passe de la base de données source compatible avec MongoDB. Exemple :
mongopassword
. - MONGODB_HOST_ADDRESS : nom d'hôte de la base de données source compatible avec MongoDB. La valeur doit respecter le format de connexion SRV MongoDB.
Exemple :
host.mongodb.example.com
. - MONGODB_DATABASE_NAME : nom de la base de données source compatible avec MongoDB. Exemple :
source_db
.
Étapes suivantes
Accédez à Créer des profils de connexion.