Configura le variabili di ambiente

Questa pagina descrive la parte di preparazione del processo di migrazione in cui configuri le variabili di ambiente nel tuo ambiente locale. Da questo ambiente, in un secondo momento eseguirai i comandi che configurano e attivano la procedura di migrazione. Ciascuno di questi comandi utilizzerà una o più variabili di ambiente che imposti in questa fase.

In questa fase, devi:

  1. Imposta le variabili di ambiente comuni a tutte le origini compatibili con MongoDB supportate.

  2. Imposta le variabili di ambiente specifiche per il tipo di database di origine compatibile con MongoDB e per la modalità di deployment.

Imposta le variabili di ambiente comuni

Il seguente modello consente di configurare le variabili di ambiente comuni a tutte le origini compatibili con MongoDB supportate. Aggiungerai in un secondo momento variabili aggiuntive specifiche per l'origine MongoDB.

Il modello configura il seguente insieme di variabili di ambiente:

  • Parametri generali applicabili all'intera procedura di migrazione.
  • Parametri di connessione di Datastream utilizzati per creare e gestire profili di connessione di Datastream.
  • Parametri di posizionamento dei dati di Datastream per la gestione del posizionamento dei dati nel bucket Cloud Storage durante la migrazione.
  • Parametri del modello Dataflow per la gestione della pipeline che copierà i dati dal bucket Cloud Storage nel tuo database Firestore con compatibilità MongoDB.
  • Parametri modello Dataflow aggiuntivi: questi parametri derivano da altri parametri specificati e non è necessario impostarli.
  • Parametri di connessione Firestore per stabilire una connessione al database di destinazione Firestore con compatibilità MongoDB.

Imposta le seguenti variabili prima di procedere con gli altri comandi di questa guida:

# 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"

Sostituisci quanto segue:

  • Parametri generali:

    • PROJECT_ID: un ID progetto del progetto Google Cloud in cui verrà eseguita la pipeline di migrazione. Esempio: example-project.

      È possibile utilizzare un database Firestore di destinazione con compatibilità MongoDB che si trova in un altro progetto. Tuttavia, questa guida presuppone che tutte le risorse pertinenti si trovino nello stesso progetto.

    • LOCATION: una regione in cui verrà eseguita la pipeline di migrazione. Esempi: nam5, us-central1.

      Ti consigliamo di utilizzare la stessa regione del database Firestore con compatibilità MongoDB di destinazione.

  • Parametri di connessione Datastream:

    • SRC_CONNECTION_PROFILE_NAME: un nome leggibile per il profilo di connessione Datastream del database di origine compatibile con MongoDB. Esempio: source-mongo-profile.

      In un secondo momento creerai un profilo di connessione con questo nome.

    • DST_CONNECTION_PROFILE_NAME: un nome leggibile per l'Datastream connection profile per il bucket Cloud Storage di destinazione. Esempio: destination-gcs-profile.

      In seguito creerai un profilo di connessione di destinazione con questo nome.

    • DATASTREAM_NAME: un nome leggibile di uno stream Datastream che trasferirà i dati dal database di origine compatibile con MongoDB a Cloud Storage. Esempio: mongo-to-gcs-stream.

      Creerai questo stream in un secondo momento.

  • Parametri di posizionamento dei dati di Datastream:

    • GCS_BUCKET_NAME: il nome del bucket Cloud Storage che hai creato in precedenza. Esempio: mongo-migration-bucket.

      Questo valore viene utilizzato per creare un profilo di connessione di destinazione in un secondo momento.

    • GCS_BUCKET_ROOT_PATH: il nome della directory di primo livello nel bucket Cloud Storage in cui inserire i dati intermedi durante la migrazione. Esempio: mongo-migration-root.

      Questo valore viene utilizzato per creare un profilo di connessione di destinazione in un secondo momento.

    • GCS_BUCKET_TEMPLATE_PATH: un percorso secondario nella directory GCS_BUCKET_ROOT_PATH per una determinata istanza Datastream.

      Lo stesso profilo di connessione di destinazione può essere utilizzato per più esportazioni in Cloud Storage. Tuttavia, devi designare un sottopercorso univoco per ogni migrazione. Esempio: mongo-migration-data-0.

      Questo valore viene utilizzato per creare uno stream in un secondo momento.

  • Parametri del modello Dataflow:

    • GCS_BUCKET_TEMPLATE_PATH: un percorso secondario nella directory GCS_BUCKET_ROOT_PATH in cui verrà eseguito lo staging di un modello Dataflow. Esempio: mongo-migration-template-path.

    • NUM_WORKERS: il numero iniziale di worker con cui eseguire il modello Dataflow. Esempio: 2.

    • MAX_WORKERS: il numero massimo di worker con cui eseguire il modello Dataflow. Esempio: 8.

    • WORKER_TYPE: il tipo di istanza Compute Engine da utilizzare per il job Dataflow. Il tipo di macchina consigliato è e2-highmem-8.

  • Parametri di connessione Firestore:

    • FIRESTORE_DATABASE_NAME: il nome del database Firestore con compatibilità MongoDB in cui esegui la migrazione dei dati. Esempio: firestore-database-name.

    • FIRESTORE_CONNECTION_URI: la stringa URI di connessione per il database Firestore con compatibilità MongoDB.

      Esempio: mongodb://USERNAME:PASSWORD@CONNECTION_STRING:443/FIRESTORE_DATABASE_NAME?loadBalanced=true&authMechanism=SCRAM-SHA-256&tls=true&retryWrites=false.

Imposta le variabili di ambiente specifiche per il tipo di database di origine

I seguenti modelli consentono di configurare variabili di ambiente specifiche per il tipo di database di origine compatibile con MongoDB e per la modalità di deployment.

MongoDB su Compute Engine

Le seguenti variabili sono specifiche per i database di origine MongoDB che si trovano in un cluster autogestito (Compute Engine). Impostali prima di procedere con gli altri comandi di questa guida:

# 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"

Sostituisci quanto segue:

  • MONGODB_USERNAME: il nome utente del database di origine compatibile con MongoDB. Esempio: mongouser.

  • MONGODB_PASSWORD: la password del database di origine compatibile con MongoDB. Esempio: mongopassword.

  • MONGODB_IP_ADDRESS: specifica l'indirizzo IP interno, insieme al numero di porta, della VM che ospita il server MongoDB. Esempio: 10.0.0.1:27017.

    • Per i deployment non partizionati, ma configurati con set di repliche, l'indirizzo IP di qualsiasi replica nel set è valido. Tuttavia, ti consigliamo di utilizzare una delle repliche secondarie.

    • Per i cluster partizionati, specifica l'indirizzo di uno dei tuoi server mongos.

  • (Solo per i cluster con set di repliche non sottoposti a sharding) REPLICA_SET: specifica il nome del set di repliche che deve essere utilizzato per il processo di migrazione. Esempio: rs0.

  • MONGODB_DATABASE_NAME: il nome del database di origine compatibile con MongoDB. Esempio: source_db.

  • PRIVATE_CONNECTION_NAME: l'ID della configurazione di connettività privata che hai creato in precedenza. Esempio: pc_name.

MongoDB su SSH

Se gestisci un deployment MongoDB privato al di fuori di Compute Engine, Datastream supporta la connessione al database di origine tramite un tunnel SSH di forwarding. Per saperne di più, consulta Tunnel SSH.

Le seguenti variabili sono specifiche per la connessione ai database di origine MongoDB tramite un tunnel SSH di forwarding. Impostali prima di procedere con gli altri comandi di questa guida:

# 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"

Sostituisci quanto segue:

  • MONGODB_USERNAME: il nome utente del database di origine compatibile con MongoDB. Esempio: mongouser.

  • MONGODB_PASSWORD: la password del database di origine compatibile con MongoDB. Esempio: mongopassword.

  • MONGODB_IP_ADDRESS: specifica l'indirizzo IP interno, insieme al numero di porta, della VM che ospita il server MongoDB. Esempio: 10.0.0.1:27017.

    • Per i deployment non partizionati, ma configurati con set di repliche, l'indirizzo IP di qualsiasi replica nel set è valido. Tuttavia, ti consigliamo di utilizzare una delle repliche secondarie.

    • Per i cluster partizionati, specifica l'indirizzo di uno dei tuoi server mongos.

  • (Solo per i cluster con set di repliche non sottoposti a sharding) REPLICA_SET: specifica il nome del set di repliche che deve essere utilizzato per il processo di migrazione. Esempio: rs0.

  • MONGODB_DATABASE_NAME: il nome del database di origine compatibile con MongoDB. Esempio: source_db.

  • BASTION_IP_ADDRESS: l'indirizzo dell'host sulla tua rete che può accettare una connessione SSH. Può trattarsi del server MongoDB stesso o di un host bastion designato che consente l'accesso SSH da una rete pubblica e fornisce anche la connettività interna al server MongoDB effettivo. Esempio: 30.0.0.1.

  • BASTION_SSH_PORT: La porta SSH sull'host. Esempio: 22.

  • BASTION_SSH_USERNAME: Nome utente per la connessione SSH.

  • BASTION_SSH_PRIVATE_KEY: Il payload completo della chiave privata SSH. Ad esempio, per una chiave RSA, questo payload includerebbe l'intestazione -----BEGIN RSA PRIVATE KEY----- e il piè di pagina -----END RSA PRIVATE KEY-----. Esempio: BASTION_SSH_PRIVATE_KEY=$(cat ~/.ssh/private_key)

Amazon DocumentDB

Assicurati di avere la chiave SSH privata per l'istanza Amazon EC2 che fornirà la connessione al cluster DocumentDB. Assicurati inoltre di aver scaricato il bundle di certificati specifico per la regione come descritto nella sezione Configurazione delle risorse e di aver estratto e convalidato un certificato specifico.

Le seguenti variabili sono specifiche per la connessione ai database di origine DocumentDB tramite un tunnel SSH di forwarding. Impostali prima di procedere con gli altri comandi di questa guida:

# 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"

Sostituisci quanto segue:

  • MONGODB_USERNAME: il nome utente del database di origine DocumentDB. Esempio: mongouser.

  • MONGODB_PASSWORD: la password del database di origine DocumentDB. Esempio: mongopassword.

  • MONGODB_HOST_ADDRESS: L'indirizzo del cluster DocumentDB. Esempio: mydocumentdb.cluster-abcd.us-east-2.docdb.amazonaws.com:27017.

  • REPLICA_SET: specifica il nome del set di repliche da utilizzare per il processo di migrazione. Esempio: rs0.

  • MONGODB_DATABASE_NAME: il nome del database di origine DocumentDB. Esempio: source_db.

  • BASTION_IP_ADDRESS: l'indirizzo IP esterno dell'istanza EC2 che consente l'accesso SSH da una rete pubblica e fornisce anche la connettività interna al cluster DocumentDB all'interno del tuo Amazon VPC. Esempio: 30.0.0.1.

  • BASTION_SSH_PORT: La porta SSH sull'host. Esempio: 22.

  • BASTION_SSH_USERNAME: Nome utente per la connessione SSH.

  • BASTION_SSH_PRIVATE_KEY: Il payload completo della chiave privata SSH. Ad esempio, per una chiave RSA, questo payload includerebbe l'intestazione -----BEGIN RSA PRIVATE KEY----- e il piè di pagina -----END RSA PRIVATE KEY-----. Esempio: BASTION_SSH_PRIVATE_KEY=$(cat ~/ec2_bastion_host.pem)

  • DOCUMENT_DB_CA_CERTIFICATE: il payload completo del certificato CA DocumentDB. Questo payload deve includere l'intestazione -----BEGIN CERTIFICATE----- e il piè di pagina -----END CERTIFICATE----- e deve includere un solo certificato. Esempio: BASTION_SSH_PRIVATE_KEY=$(cat ~/us-east-1.pem)

Azure Cosmos DB

Le seguenti variabili sono specifiche per i database di origine Azure Cosmos DB. Impostali prima di procedere con gli altri comandi di questa guida:

# Azure Cosmos DB Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST_ADDRESS"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"

Sostituisci quanto segue:

  • MONGODB_USERNAME: il nome utente del database di origine compatibile con MongoDB. Esempio: mongouser.
  • MONGODB_PASSWORD: la password del database di origine compatibile con MongoDB. Esempio: mongopassword.
  • MONGODB_HOST_ADDRESS: il nome host del database di origine compatibile con MongoDB. Il valore deve essere conforme al formato di connessione SRV MongoDB. Esempio:host.cosmos.azure.example.com.
  • MONGODB_DATABASE_NAME: il nome del database di origine compatibile con MongoDB. Esempio: source_db.

MongoDB Atlas

Le seguenti variabili sono specifiche per i database di origine MongoDB Atlas. Impostali prima di procedere con gli altri comandi di questa guida:

# MongoDB Atlas Parameters
MONGODB_USERNAME="MONGODB_USERNAME"
MONGODB_PASSWORD="MONGODB_PASSWORD"
MONGODB_HOST_ADDRESS="MONGODB_HOST"
MONGODB_DATABASE_NAME="MONGODB_DATABASE_NAME"

Sostituisci quanto segue:

  • MONGODB_USERNAME: il nome utente del database di origine compatibile con MongoDB. Esempio: mongouser.
  • MONGODB_PASSWORD: la password del database di origine compatibile con MongoDB. Esempio: mongopassword.
  • MONGODB_HOST_ADDRESS: il nome host del database di origine compatibile con MongoDB. Il valore deve essere conforme al formato di connessione SRV MongoDB. Esempio:host.mongodb.example.com.
  • MONGODB_DATABASE_NAME: il nome del database di origine compatibile con MongoDB. Esempio: source_db.

Passaggi successivi

Vai a Creazione di profili di connessione.