Testar usando o emulador

O Google Cloud CLI fornece um emulador local na memória para o Bigtable, que você pode usar para testar seu aplicativo. Como o emulador armazena dados apenas na memória, ele não vai manter dados nas execuções. O objetivo é ajudar você a usar o Bigtable para desenvolvimento e testes locais, não para implantações de produção.

Você pode usar o emulador com todas as bibliotecas de cliente do Cloud Bigtable.

O emulador não oferece APIs administrativas para criar ou gerenciar instâncias e clusters. Após a inicialização do emulador, você poderá se conectar a ele usando qualquer nome de instância e projeto para criar tabelas e ler ou gravar dados. O emulador não oferece suporte a uma conexão segura.

Instalar e executar o emulador

As duas maneiras mais comuns de executar o emulador são usando a CLI gcloud e Docker. Escolha a maneira apropriada para o fluxo de trabalho de desenvolvimento e teste do aplicativo.

Configurar a autenticação

É possível usar as amostras da CLI do gcloud nesta página de um dos seguintes ambientes de desenvolvimento:

  • Cloud Shell: para usar um terminal on-line com a CLI gcloud já configurada, ative o Cloud Shell.

    Na parte de baixo desta página, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. A inicialização da sessão pode levar alguns segundos.

  • Shell local: para usar a CLI da gcloud em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud.

CLI da gcloud

  1. Atualize a instalação da CLI da gcloud para receber os recursos mais recentes:

    gcloud components update beta
    
  2. Execute o seguinte comando para iniciar o emulador:

    gcloud beta emulators bigtable start
    

    Se o emulador não estiver instalado, você será solicitado a fazer download e instalar o binário para o emulador.

    O emulador imprime o host e o número da porta em que está sendo executado.

    Por padrão, o emulador escolhe localhost:8086. Para vincular o emulador a um host e uma porta específicos, use a sinalização --host-port opcional, substituindo HOST e PORT:

    gcloud beta emulators bigtable start --host-port=HOST:PORT
    

    Veja um exemplo abaixo.

    gcloud beta emulators bigtable start --host-port=localhost:8086
    
  3. Digite Control-C para interromper o emulador.

Docker

  1. Certifique-se de que o Docker esteja instalado no seu sistema e esteja disponível no caminho do sistema.

  2. Inicie o emulador.

    docker run -p 127.0.0.1:8086:8086 --rm -ti google/cloud-sdk gcloud beta emulators bigtable start --host-port=0.0.0.0:8086
    

    Esse comando executa o emulador e mapeia as portas no contêiner para as mesmas portas no host local.

Você também pode usar o emulador como parte do arquivo de configuração atual do Docker Compose (.yaml). Para mais informações sobre o Docker Compose, consulte Visão geral do Docker Compose.

Como usar as bibliotecas de cliente com o emulador

Defina a variável de ambiente BIGTABLE_EMULATOR_HOST para usar as bibliotecas de cliente com o emulador:

Linux / macOS

  export BIGTABLE_EMULATOR_HOST=localhost:8086

Windows

  set BIGTABLE_EMULATOR_HOST=localhost:8086

Quando o aplicativo é iniciado, a biblioteca de cliente verifica automaticamente se há BIGTABLE_EMULATOR_HOST e se conecta ao emulador se ele estiver em execução.

Depois que BIGTABLE_EMULATOR_HOST for definido, você poderá testar o emulador seguindo as amostras do hello world.

Para interromper o emulador, digite Control-C e cancele a configuração de BIGTABLE_EMULATOR_HOST com o seguinte comando:

    unset BIGTABLE_EMULATOR_HOST

Wrapper Java para o emulador

O wrapper Java agrupa o emulador integrado do Bigtable e fornece uma interface Java para criar testes.

Para mais informações sobre como usar o wrapper Java, consulte o repositório do GitHub.

A documentação a seguir fornece mais informações sobre os pacotes Java do emulador:

Filtros

O emulador é compatível com todos os filtros, exceto o Sink.

Os problemas relacionados ao emulador do Bigtable são rastreados no repositório google-cloud-go do GitHub, em que é possível enviar relatórios de bugs e solicitações de recursos ou comentar problemas atuais.