In questa pagina viene descritto come pianificare le esportazioni dei Firestore in modalità Datastore. Per eseguire le esportazioni in base a una pianificazione, consigliamo utilizzando le funzioni di Cloud Run e Cloud Scheduler. crea una Cloud Function avvia le esportazioni e utilizza Cloud Scheduler per eseguire la funzione.
Prima di iniziare
Prima di pianificare le esportazioni dei dati, devi completare le seguenti attività:
- Attiva per il tuo progetto Google Cloud. Solo Google Cloud I progetti in cui è abilitata la fatturazione possono utilizzare la funzionalità di esportazione e importazione.
- Crea in un bucket Cloud Storage in una località vicino a la tua modalità Datastore località del database. Le operazioni di esportazione richiedono una destinazione Cloud Storage di sincronizzare la directory di una VM con un bucket. Non puoi utilizzare un bucket per i pagamenti a carico del richiedente per le operazioni di esportazione.
Crea una funzione Cloud Function e un job Cloud Scheduler
Segui questi passaggi per creare una Cloud Function avvia esportazioni dei dati e un job Cloud Scheduler per chiamare questa funzione:
Crea una Cloud Function datastore_export
-
Vai alla pagina Cloud Functions nella console Google Cloud:
- Fai clic su Crea funzione
- Inserisci un nome per la funzione, ad esempio
datastoreExport
- In Trigger, seleziona Cloud Pub/Sub. Cloud Scheduler utilizza l'argomento Pub/Sub per chiamare la funzione.
- Nel campo Argomento, seleziona Crea un argomento. Inserisci un nome per
l'argomento Pub/Sub, come
startDatastoreExport
. Prendi nota il nome dell'argomento secondo le necessità per creare il job Cloud Scheduler. - In Codice sorgente, seleziona Editor incorporato.
- Nel menu a discesa Runtime, seleziona Python 3.7.
- Inserisci il seguente codice per
main.py
: - In
requirements.txt
, aggiungi la seguente dipendenza: - In Entry point (Punto di ingresso), inserisci
datastore_export
, nome della funzione inmain.py
. - Fai clic su Esegui il deployment per eseguire il deployment della Cloud Function.
Configurare le autorizzazioni di accesso
Successivamente, concedi alla Cloud Function l'autorizzazione per avviare l'esportazione e scrivere nel bucket Cloud Storage.
Questa funzione Cloud Functions utilizza l'account di servizio predefinito del progetto per autenticare e autorizzare le operazioni di esportazione. Quando crei un progetto, viene creato per te un account di servizio predefinito con il seguente nome:
project_id@appspot.gserviceaccount.com
Questo account di servizio richiede l'autorizzazione per avviare l'esportazione operazioni e scrivere nel bucket Cloud Storage. Per concedere questi di servizio, assegna i seguenti ruoli IAM all'account di servizio predefinito:
Cloud Datastore Import Export Admin
- Ruolo
Storage Object User
nel bucket
Puoi utilizzare Google Cloud CLI per assegnare questi ruoli. Puoi accedere a questa
di Cloud Shell nella console Google Cloud:
Avvia Cloud Shell
-
Assegna il ruolo Amministratore importazione ed esportazione di Cloud Datastore. Sostituisci project_id ed esegui questo comando:
gcloud projects add-iam-policy-binding project_id \ --member serviceAccount:project_id@appspot.gserviceaccount.com \ --role roles/datastore.importExportAdmin
-
Assegna il ruolo Utente oggetti Storage al tuo bucket. Sostituisci bucket_name e project_id ed esegui questo comando :
gcloud storage buckets add-iam-policy-binding gs://bucket_name \ --member=serviceAccount:project_id@appspot.gserviceaccount.com \ --role=roles/storage.objectUser
Crea un job Cloud Scheduler
Quindi, crea un job Cloud Scheduler che chiami datastore_export
Cloud Function:
Vai alla pagina Cloud Scheduler nella console Google Cloud:
Fai clic su Crea job.
Inserisci un nome per il job, ad esempio
scheduledDatastoreExport
.Inserisci una Frequenza nel formato cron unix.
Seleziona un Fuso orario.
In Destinazione, seleziona Pub/Sub. Nel campo Argomento, inserisci il nome dell'argomento Pub/Sub definito accanto Cloud Function Functions,
startDatastoreExport
nell'esempio precedente.Nel campo Payload, inserisci un oggetto JSON per configurare dell'esportazione. La funzione Cloud Function
datastore_export
richiede unbucket
valore. Facoltativamente, puoi includere i valorikinds
onamespaceIDs
per impostare un filtro delle entità, ad esempio:Esporta tutte le entità
{ "bucket": "gs://bucket_name" }
Esporta con filtro entità
Esporta entità di tipo
User
oTask
da tutti gli spazi dei nomi:{ "bucket": "gs://bucket_name", "kinds": ["User", "Task"] }
Esporta entità di tipo
User
oTask
da quella predefinita e daTesters
spazi dei nomi. Usa una stringa vuota (""
) per specificare il valore predefinito spazio dei nomi:{ "bucket": "gs://bucket_name", "kinds": ["User", "Task"], "namespaceIds": ["", "Testers"] }
Esporta entità di qualsiasi tipo da quelle predefinite e
Testers
spazi dei nomi. Usa una stringa vuota (""
) per specificare il valore predefinito spazio dei nomi:{ "bucket": "gs://bucket_name", "namespaceIds": ["", "Testers"] }
Dove
bucket_name
è il nome del tuo bucket Cloud Storage.Fai clic su Crea.
Testare le esportazioni pianificate
Per testare la Cloud Function e il job Cloud Scheduler, esegui il Job Cloud Scheduler nella pagina Cloud Scheduler di la console Google Cloud. Se l'operazione ha esito positivo, verrà avviata un'operazione di esportazione reale.
Vai alla pagina Cloud Scheduler nella console Google Cloud.
Vai a Cloud SchedulerNella riga del nuovo job Cloud Scheduler, fai clic su Esegui ora.
Dopo alcuni secondi, fai clic su Aggiorna. Il job Cloud Scheduler aggiorna la colonna dei risultati a Success e Ultima esecuzione all'ora corrente.
La pagina Cloud Scheduler conferma solo che il job ha inviato un messaggio Pub/Sub. Per verificare se la richiesta di esportazione è riuscita, visualizza i log delle la funzione Cloud Function.
visualizza i log della funzione Cloud Function
Per verificare se la Cloud Function ha avviato correttamente un'operazione di esportazione, consulta la pagina Esplora log nella console Google Cloud.
Il log per la Cloud Function segnala errori e avvii dell'esportazione riusciti.
Visualizzare l'avanzamento dell'esportazione
Puoi utilizzare il comando gcloud datastore operations list
per visualizzare
l'avanzamento delle operazioni di esportazione,
elenco di tutte le operazioni a lunga esecuzione.
Al termine di un'operazione di esportazione, puoi visualizzare i file di output nel bucket Cloud Storage. Il servizio di esportazione gestito utilizza un timestamp per organizzare le operazioni di esportazione: