Configure variáveis de ambiente

Esta página descreve a parte de preparação do processo de migração em que configura as variáveis de ambiente no seu ambiente local. Neste ambiente, vai executar mais tarde os comandos que configuram e acionam o processo de migração. Cada um destes comandos vai usar uma ou mais variáveis de ambiente que define nesta fase.

Nesta fase, faz o seguinte:

  1. Defina variáveis de ambiente comuns a todas as origens compatíveis com o MongoDB.

  2. Defina variáveis de ambiente específicas do tipo de base de dados de origem compatível com o MongoDB e da forma como é implementada.

Defina variáveis de ambiente comuns

O seguinte modelo ajuda a configurar variáveis de ambiente comuns a todas as origens compatíveis com o MongoDB. Vai adicionar variáveis adicionais específicas da sua origem do MongoDB mais tarde.

O modelo configura o seguinte conjunto de variáveis de ambiente:

  • Parâmetros gerais aplicáveis a todo o procedimento de migração.
  • Parâmetros de ligação do fluxo de dados usados para criar e gerir perfis de ligação do fluxo de dados.
  • Parâmetros de posicionamento de dados do fluxo de dados para gerir o posicionamento de dados no contentor do Cloud Storage durante a migração.
  • Parâmetros do modelo do Dataflow para gerir o pipeline que vai copiar dados do contentor do Cloud Storage para a sua base de dados do Firestore com compatibilidade com o MongoDB.
  • Parâmetros adicionais do modelo do Dataflow: estes parâmetros são derivados de outros parâmetros que especifica e não precisa de os definir.
  • Parâmetros de ligação do Firestore para estabelecer uma ligação à base de dados de destino do Firestore com compatibilidade com o MongoDB.

Defina as seguintes variáveis antes de continuar com outros comandos neste guia:

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

Substitua o seguinte:

  • Parâmetros gerais:

    • PROJECT_ID: um ID do projeto do projeto onde o pipeline de migração vai ser executado. Google Cloud Exemplo: example-project.

      É possível usar um Firestore de destino com uma base de dados de compatibilidade com o MongoDB localizada noutro projeto. No entanto, este guia pressupõe que todos os recursos relevantes estão localizados no mesmo projeto.

    • LOCATION: uma região onde o pipeline de migração vai ser executado. Exemplos: nam5, us-central1.

      Recomendamos que use a mesma região que a base de dados de destino do Firestore com compatibilidade com o MongoDB.

  • Parâmetros de ligação do fluxo de dados:

  • Parâmetros de posicionamento de dados do Datastream:

    • GCS_BUCKET_NAME: o nome do contentor do Cloud Storage que criou anteriormente. Exemplo: mongo-migration-bucket.

      Este valor é usado para criar um perfil de associação de destino mais tarde.

    • GCS_BUCKET_ROOT_PATH: O nome do diretório de nível superior no contentor do Cloud Storage para colocar os dados intermédios durante a migração. Exemplo: mongo-migration-root.

      Este valor é usado para criar um perfil de associação de destino mais tarde.

    • GCS_BUCKET_TEMPLATE_PATH: um subcaminho no diretório GCS_BUCKET_ROOT_PATH para uma determinada instância de fluxo de dados.

      Pode usar o mesmo perfil de ligação de destino para várias exportações para o Cloud Storage. No entanto, tem de designar um subcaminho único para cada migração. Exemplo: mongo-migration-data-0.

      Este valor é usado para criar uma stream mais tarde.

  • Parâmetros do modelo do Dataflow:

    • GCS_BUCKET_TEMPLATE_PATH: um subcaminho no diretório GCS_BUCKET_ROOT_PATH onde um modelo do Dataflow vai ser preparado. Exemplo: mongo-migration-template-path.

    • NUM_WORKERS: o número inicial de trabalhadores para executar o modelo do Dataflow. Exemplo: 2.

    • MAX_WORKERS: o número máximo de trabalhadores para executar o modelo do Dataflow. Exemplo: 8.

    • WORKER_TYPE: o tipo de instância do Compute Engine a usar para a tarefa do Dataflow. O tipo de máquina recomendado é e2-highmem-8.

  • Parâmetros de ligação do Firestore:

    • FIRESTORE_DATABASE_NAME: o nome da base de dados do Firestore com compatibilidade com o MongoDB para onde migra os dados. Exemplo: firestore-database-name.

    • FIRESTORE_CONNECTION_URI: A string do URI de ligação para a base de dados compatível com o Firestore e o MongoDB.

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

Defina variáveis de ambiente específicas do tipo de base de dados de origem

Os seguintes modelos ajudam a configurar variáveis de ambiente específicas do tipo de base de dados de origem compatível com o MongoDB e da forma como é implementada.

MongoDB no Compute Engine

As seguintes variáveis são específicas das bases de dados de origem do MongoDB localizadas num cluster autogerido (Compute Engine). Defina-as antes de continuar com outros comandos neste guia:

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

Substitua o seguinte:

  • MONGODB_USERNAME: O nome de utilizador da base de dados de origem compatível com o MongoDB. Exemplo: mongouser.

  • MONGODB_PASSWORD: A palavra-passe da base de dados de origem compatível com o MongoDB. Exemplo: mongopassword.

  • MONGODB_IP_ADDRESS: especifique o endereço IP interno, juntamente com o número da porta, da VM que aloja o seu servidor MongoDB. Exemplo: 10.0.0.1:27017.

    • Para implementações que não são divididas, mas configuradas com conjuntos de réplicas, o endereço IP de qualquer réplica no conjunto é válido. No entanto, recomendamos que use uma das réplicas secundárias.

    • Para clusters fragmentados, especifique o endereço de um dos seus servidores mongos.

  • (Apenas para clusters com conjuntos de réplicas que não são divididos) REPLICA_SET: especifique o nome do conjunto de réplicas que tem de ser usado para o processo de migração. Exemplo: rs0.

  • MONGODB_DATABASE_NAME: O nome da base de dados de origem compatível com o MongoDB. Exemplo: source_db.

  • PRIVATE_CONNECTION_NAME: o ID da configuração de conetividade privada que criou anteriormente. Exemplo: pc_name.

MongoDB através de SSH

Se estiver a gerir uma implementação privada do MongoDB fora do Compute Engine, o Datastream suporta a ligação à sua base de dados de origem através de um túnel SSH encaminhado. Para mais informações, consulte o artigo Túneis SSH.

As seguintes variáveis são específicas para estabelecer ligação a bases de dados de origem do MongoDB através de um túnel SSH encaminhado. Defina-os antes de continuar com outros comandos neste guia:

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

Substitua o seguinte:

  • MONGODB_USERNAME: O nome de utilizador da base de dados de origem compatível com o MongoDB. Exemplo: mongouser.

  • MONGODB_PASSWORD: A palavra-passe da base de dados de origem compatível com o MongoDB. Exemplo: mongopassword.

  • MONGODB_IP_ADDRESS: especifique o endereço IP interno, juntamente com o número da porta, da VM que aloja o seu servidor MongoDB. Exemplo: 10.0.0.1:27017.

    • Para implementações que não são divididas, mas configuradas com conjuntos de réplicas, o endereço IP de qualquer réplica no conjunto é válido. No entanto, recomendamos que use uma das réplicas secundárias.

    • Para clusters fragmentados, especifique o endereço de um dos seus servidores mongos.

  • (Apenas para clusters com conjuntos de réplicas que não são divididos) REPLICA_SET: especifique o nome do conjunto de réplicas que tem de ser usado para o processo de migração. Exemplo: rs0.

  • MONGODB_DATABASE_NAME: O nome da base de dados de origem compatível com o MongoDB. Exemplo: source_db.

  • BASTION_IP_ADDRESS: o endereço do anfitrião na sua rede que pode aceitar uma ligação SSH. Pode ser o próprio servidor MongoDB ou um anfitrião Bastion designado que permite o acesso SSH a partir de uma rede pública e também fornece conetividade interna ao servidor MongoDB real. Exemplo: 30.0.0.1.

  • BASTION_SSH_PORT: a porta SSH no anfitrião. Exemplo: 22.

  • BASTION_SSH_USERNAME: nome de utilizador para a ligação SSH.

  • BASTION_SSH_PRIVATE_KEY: a carga útil completa da chave privada de SSH. Por exemplo, para uma chave RSA, esta carga útil incluiria o cabeçalho -----BEGIN RSA PRIVATE KEY----- e o rodapé -----END RSA PRIVATE KEY-----. Exemplo: BASTION_SSH_PRIVATE_KEY=$(cat ~/.ssh/private_key)

Amazon DocumentDB

Certifique-se de que tem a chave SSH privada para a instância do Amazon EC2 que vai fornecer a ligação ao cluster do DocumentDB. Certifique-se também de que transferiu o pacote de certificados específico da região, conforme descrito na secção Configuração de recursos e extraiu e validou um certificado específico.

As seguintes variáveis são específicas para estabelecer ligação a bases de dados de origem do DocumentDB através de um túnel SSH encaminhado. Defina-os antes de continuar com outros comandos neste guia:

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

Substitua o seguinte:

  • MONGODB_USERNAME: o nome de utilizador da base de dados de origem do DocumentDB. Exemplo: mongouser.

  • MONGODB_PASSWORD: a palavra-passe da base de dados de origem do DocumentDB. Exemplo: mongopassword.

  • MONGODB_HOST_ADDRESS: a morada do cluster do DocumentDB. Exemplo: mydocumentdb.cluster-abcd.us-east-2.docdb.amazonaws.com:27017.

  • REPLICA_SET: especifique o nome do conjunto de réplicas que tem de ser usado para o processo de migração. Exemplo: rs0.

  • MONGODB_DATABASE_NAME: o nome da base de dados de origem do DocumentDB. Exemplo: source_db.

  • BASTION_IP_ADDRESS: o endereço IP externo da instância do EC2 que permite o acesso SSH a partir de uma rede pública e também fornece conetividade interna ao cluster do DocumentDB na sua Amazon VPC. Exemplo: 30.0.0.1.

  • BASTION_SSH_PORT: a porta SSH no anfitrião. Exemplo: 22.

  • BASTION_SSH_USERNAME: nome de utilizador para a ligação SSH.

  • BASTION_SSH_PRIVATE_KEY: a carga útil completa da chave privada de SSH. Por exemplo, para uma chave RSA, esta carga útil incluiria o cabeçalho -----BEGIN RSA PRIVATE KEY----- e o rodapé -----END RSA PRIVATE KEY-----. Exemplo: BASTION_SSH_PRIVATE_KEY=$(cat ~/ec2_bastion_host.pem)

  • DOCUMENT_DB_CA_CERTIFICATE: a carga útil completa do certificado de AC do DocumentDB. Esta carga útil deve incluir o cabeçalho -----BEGIN CERTIFICATE----- e o rodapé -----END CERTIFICATE-----, e só pode incluir um único certificado. Exemplo: BASTION_SSH_PRIVATE_KEY=$(cat ~/us-east-1.pem)

Azure Cosmos DB

As seguintes variáveis são específicas das bases de dados de origem do Azure Cosmos DB. Defina-as antes de continuar com outros comandos neste guia:

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

Substitua o seguinte:

  • MONGODB_USERNAME: O nome de utilizador da base de dados de origem compatível com o MongoDB. Exemplo: mongouser.
  • MONGODB_PASSWORD: A palavra-passe da base de dados de origem compatível com o MongoDB. Exemplo: mongopassword.
  • MONGODB_HOST_ADDRESS: O nome do anfitrião da base de dados de origem compatível com o MongoDB. O valor tem de estar em conformidade com o formato de ligação SRV do MongoDB. Exemplo:host.cosmos.azure.example.com.
  • MONGODB_DATABASE_NAME: O nome da base de dados de origem compatível com o MongoDB. Exemplo: source_db.

MongoDB Atlas

As seguintes variáveis são específicas das bases de dados de origem do MongoDB Atlas. Defina-as antes de continuar com outros comandos neste guia:

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

Substitua o seguinte:

  • MONGODB_USERNAME: O nome de utilizador da base de dados de origem compatível com o MongoDB. Exemplo: mongouser.
  • MONGODB_PASSWORD: A palavra-passe da base de dados de origem compatível com o MongoDB. Exemplo: mongopassword.
  • MONGODB_HOST_ADDRESS: O nome do anfitrião da base de dados de origem compatível com o MongoDB. O valor tem de estar em conformidade com o formato de ligação SRV do MongoDB. Exemplo:host.mongodb.example.com.
  • MONGODB_DATABASE_NAME: O nome da base de dados de origem compatível com o MongoDB. Exemplo: source_db.

O que se segue?

Prossiga para Criar perfis de ligação.