Como migrar para o emulador do Cloud Datastore

O emulador do Cloud Datastore fornece a emulação local do ambiente de produção do Datastore. O emulador do Cloud Datastore está sendo implementado progressivamente como a implementação padrão do Datastore para o dev_appserver.

Benefícios de migrar para o emulador do Datastore

O emulador do Datastore pode ser compartilhado entre as bibliotecas de cliente do ambiente padrão do App Engine, como DB e NDB, e as bibliotecas de cliente do Cloud Datastore.

É possível usar o emulador do Datastore para compartilhar dados locais entre serviços em execução no ambiente padrão do App Engine e no ambiente flexível do App Engine.

Antes de começar

  1. Faça o download e instale o ambiente de execução Java (JRE) versão 8 ou posterior.

  2. Execute o dev_appserver no diretório google-cloud-sdk/bin.

Como escolher o ambiente de emulação

O emulador do Cloud Datastore é o emulador padrão para uma parte dos usuários do dev_appserver. Se você estiver usando o emulador do Cloud Datastore, o dev_appserver exibirá:

... Using Cloud Datastore Emulator.

Force o dev_appserver a usar o emulador do Cloud Datastore definindo o sinalizador '--support_datastore_emulator' como true ao iniciar o dev_appserver:

dev_appserver.py --support_datastore_emulator=[true|false] app.yaml

Como usar o dev_appserver com o emulador do Datastore

O dev_appserver inicia ou não o emulador com base na variável de ambiente DATASTORE_EMULATOR_HOST.

  • Quando essa variável de ambiente existe, o dev_appserver se comunica com um processo emulador existente em execução no DATASTORE_EMULATOR_HOST.

  • Quando essa variável de ambiente não existe, o dev_appserver inicia um novo processo emulador. É possível especificar a porta para o emulador do Datastore, definindo o --datastore_emulator_port ao iniciar o dev_appserver.py.

Alterações de comportamento

Conversão de formato de dados locais

Atualmente, o emulador local do Datastore armazena dados em sqlite3, enquanto o emulador do Cloud Datastore armazena dados como objetos Java.

Quando o dev_appserver é iniciado com dados sqlite3 legados, os dados serão convertidos em objetos Java. Os dados originais são armazenados em backup com o nome de arquivo {original-data-filename} .sqlitestub.

Localização do arquivo de dados locais

O arquivo de dados locais pode ser especificado com o sinalizador --datastore_path.

  • Quando o dev_appserver inicia o emulador, a localização permanece inalterada.

  • Quando o dev_appserver usa o emulador do Cloud Datastore existente, o sinalizador será ignorado para a configuração do emulador.

index.yaml local

  • Um index.yaml vazio será considerado inválido. A sintaxe do index.yaml é o formato YAML. O arquivo index.yaml tem um único elemento de lista denominado indexes.

  • Quando o dev_appsever inicia o emulador, o index.yaml fica no diretório do projeto do aplicativo.

  • Quando o dev_appserver usa o emulador do Cloud Datastore existente, o index.yaml será gerenciado pelo emulador.

Outros recursos do servidor local do datastore permanecem inalterados.

Como resolver problemas

Como receber a saída do emulador

Por padrão, o dev_appserver executa o emulador do Datastore no modo silencioso. Para ver a saída do emulador do Datastore, execute dev_appserver com --dev_appserver_log_level=debug.

Conflitos de importação

O dev_appserver usa grpc para se comunicar com o emulador do Cloud Datastore, o que pode causar conflitos de importação. Se houver erro, execute o dev_appserver dentro do virtualenv.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Python