Esta página descreve como agendar exportações dos seus dados do Firestore no modo Datastore. Para executar exportações de acordo com uma programação, recomendamos que use funções do Cloud Run e o Cloud Scheduler. Crie uma função do Google Cloud que inicie as exportações e use o Cloud Scheduler para executar a sua função.
Antes de começar
Antes de agendar exportações de dados, tem de concluir as seguintes tarefas:
- Ative a faturação para o seu Google Cloud projeto. Apenas os Google Cloud projetos com a faturação ativada podem usar a funcionalidade de exportação e importação.
- Crie um contentor do Cloud Storage numa localização perto da localização da base de dados do modo Datastore. As operações de exportação requerem um contentor do Cloud Storage de destino. Não pode usar um contentor de pagamentos do requerente para operações de exportação.
Crie uma função do Google Cloud e uma tarefa do Cloud Scheduler
Siga os passos abaixo para criar uma função do Google Cloud que inicie exportações de dados e uma tarefa do Cloud Scheduler para chamar essa função:
Crie uma datastore_export
função do Google Cloud
-
Aceda à página Cloud Functions na Google Cloud consola:
- Clique em Criar função
- Introduza um nome de função, como
datastoreExport
- Em Acionador, selecione Cloud Pub/Sub. O Cloud Scheduler usa o seu tópico do pub/sub para chamar a sua função.
- No campo Tópico, selecione Criar um tópico. Introduza um nome para o tópico do Pub/Sub, como
startDatastoreExport
. Tome nota do nome do tópico, uma vez que precisa dele para criar a tarefa do Cloud Scheduler. - Em Código fonte, selecione Editor inline.
- No menu pendente Tempo de execução, selecione Python 3.7.
- Introduza o seguinte código para
main.py
: - Em
requirements.txt
, adicione a seguinte dependência: - Em Ponto de entrada, introduza
datastore_export
, o nome da função emmain.py
. - Clique em Implementar para implementar a função do Cloud.
Configure as autorizações de acesso
Em seguida, conceda à função do Cloud autorização para iniciar operações de exportação e escrever no seu contentor do Cloud Storage.
Esta Cloud Function usa a conta de serviço predefinida do seu projeto para autenticar e autorizar as respetivas operações de exportação. Quando cria um projeto, é criada uma conta de serviço predefinida com o seguinte nome:
project_id@appspot.gserviceaccount.com
Esta conta de serviço precisa de autorização para iniciar operações de exportação e escrever no seu contentor do Cloud Storage. Para conceder estas autorizações, atribua as seguintes funções do IAM à conta de serviço predefinida:
Cloud Datastore Import Export Admin
- Função
Storage Object User
no contentor
Pode usar a Google Cloud CLI para atribuir estas funções. Pode aceder a esta ferramenta a partir do Cloud Shell na Google Cloud consola:
inicie o Cloud Shell
-
Atribua a função Administrador de importação/exportação do Cloud Datastore. Substitua project_id e execute o seguinte comando:
gcloud projects add-iam-policy-binding project_id \ --member serviceAccount:project_id@appspot.gserviceaccount.com \ --role roles/datastore.importExportAdmin
-
Atribua a função Storage Object User no seu contentor. Substitua bucket_name e project_id e execute o seguinte comando:
gcloud storage buckets add-iam-policy-binding gs://bucket_name \ --member=serviceAccount:project_id@appspot.gserviceaccount.com \ --role=roles/storage.objectUser
Crie uma tarefa do Cloud Scheduler
Em seguida, crie uma tarefa do Cloud Scheduler que chame a datastore_export
função da nuvem:
Aceda à página Cloud Scheduler na Google Cloud consola:
Clique em Criar tarefa.
Introduza um nome para a tarefa, como
scheduledDatastoreExport
.Introduza uma frequência no formato unix-cron.
Selecione um fuso horário.
Em Destino, selecione Pub/Sub. No campo Tópico, introduza o nome do tópico de publicação/subscrição que definiu juntamente com a sua função do Google Cloud,
startDatastoreExport
no exemplo acima.No campo Payload, introduza um objeto JSON para configurar a operação de exportação. A função do Cloud
datastore_export
requer um valorbucket
. Opcionalmente, pode incluir valoreskinds
ounamespaceIDs
para definir um filtro de entidades, por exemplo:Exporte todas as entidades
{ "bucket": "gs://bucket_name" }
Exporte com filtro de entidades
Exporte entidades do tipo
User
ouTask
de todos os espaços de nomes:{ "bucket": "gs://bucket_name", "kinds": ["User", "Task"] }
Exporte entidades do tipo
User
ouTask
dos espaços de nomes predefinidos eTesters
. Use uma string vazia (""
) para especificar o espaço de nomes predefinido:{ "bucket": "gs://bucket_name", "kinds": ["User", "Task"], "namespaceIds": ["", "Testers"] }
Exporte entidades de qualquer tipo dos espaços de nomes predefinidos e
Testers
. Use uma string vazia (""
) para especificar o espaço de nomes predefinido:{ "bucket": "gs://bucket_name", "namespaceIds": ["", "Testers"] }
Em que
bucket_name
é o nome do seu contentor do Cloud Storage.Clique em Criar.
Teste as suas exportações agendadas
Para testar a função do Cloud e a tarefa do Cloud Scheduler, execute a tarefa do Cloud Scheduler na página Cloud Scheduler da consola do Google Cloud . Se for bem-sucedido, inicia uma operação de exportação real.
Aceda à página Cloud Scheduler na Google Cloud consola.
Aceda ao Cloud SchedulerNa linha da nova tarefa do Cloud Scheduler, clique em Executar agora.
Após alguns segundos, clique em Atualizar. A tarefa do Cloud Scheduler deve atualizar a coluna de resultados para Sucesso e a Última execução para a hora atual.
A página do Cloud Scheduler confirma apenas que a tarefa enviou uma mensagem para o tópico do Pub/Sub. Para ver se o pedido de exportação foi bem-sucedido, consulte os registos da sua função do Google Cloud.
Veja os registos da função do Cloud
Para ver se a função do Google Cloud iniciou com êxito uma operação de exportação, consulte a página Explorador de registos na Google Cloud consola.
Aceda ao Explorador de registos
O registo da função do Cloud comunica erros e iniciações de exportação bem-sucedidas.
Veja o progresso da exportação
Pode usar o comando gcloud datastore operations list
para ver o progresso das suas operações de exportação. Consulte o artigo Apresentar uma lista de todas as operações de longa duração.
Após a conclusão de uma operação de exportação, pode ver os ficheiros de saída no seu contentor do Cloud Storage. O serviço de exportação gerido usa uma data/hora para organizar as suas operações de exportação: