Cette page explique comment planifier des exportations de vos données Firestore en mode Datastore. Pour exécuter des exportations selon un calendrier, nous vous recommandons d'utiliser des fonctions Cloud Run et Cloud Scheduler. Créez une fonction Cloud qui lance les exportations et utilisez Cloud Scheduler pour exécuter votre fonction.
Avant de commencer
Avant de planifier l'exportation de données, vous devez effectuer les tâches suivantes :
- Activer la facturation pour votre projet Google Cloud. Seuls les projets Google Cloud pour lesquels la facturation est activée peuvent utiliser la fonctionnalité d'exportation et d'importation.
- Créer un bucket Cloud Storage dans un emplacement proche de celui où se trouve votre base de données Cloud Firestore en mode Datastore. Les opérations d'exportation nécessitent un bucket Cloud Storage de destination. Vous ne pouvez pas utiliser de bucket "paiements du demandeur" pour les opérations d'exportation.
Créer une fonction Cloud et une tâche Cloud Scheduler
Pour créer une fonction Cloud qui lance les exportations de données, ainsi qu'une tâche Cloud Scheduler pour appeler cette fonction, procédez comme suit :
Créez une fonction Cloud datastore_export
.
-
Accédez à la page Cloud Functions dans la console Google Cloud:
- Cliquez sur Créer une fonction
- Saisissez un nom de fonction tel que
datastoreExport
- Sous Déclencheur, sélectionnez Cloud Pub/Sub. Cloud Scheduler utilise votre sujet Pub/Sub pour appeler votre fonction.
- Dans le champ Sujet, sélectionnez Créer un sujet. Saisissez un nom pour le sujet Pub/Sub, par exemple
startDatastoreExport
. Notez le nom du sujet car vous en aurez besoin pour créer votre tâche Cloud Scheduler. - Sous Code source, sélectionnez Éditeur intégré.
- Dans la liste déroulante Environnement d'exécution, sélectionnez Python 3.7.
- Saisissez le code suivant pour
main.py
: - Dans
requirements.txt
, ajoutez la dépendance suivante: - Sous Point d'entrée, saisissez
datastore_export
, le nom de la fonction dansmain.py
. - Cliquez sur Créer pour déployer la fonction Cloud.
Configurer les autorisations d'accès
Ensuite, accordez à la fonction Cloud l'autorisation d'exécuter des opérations d'exportation et d'écrire dans votre bucket Cloud Storage.
Cette fonction Cloud utilise le compte de service par défaut de votre projet pour authentifier et autoriser ses opérations d'exportation. Lorsque vous créez un projet, un compte de service par défaut est créé pour vous avec le nom suivant :
project_id@appspot.gserviceaccount.com
Ce compte de service doit être autorisé à lancer les opérations d'exportation et à écrire dans votre bucket Cloud Storage. Pour accorder ces autorisations, attribuez les rôles IAM suivants au compte de service par défaut :
Cloud Datastore Import Export Admin
- Rôle
Storage Object User
dans le bucket
Vous pouvez utiliser la Google Cloud CLI pour attribuer ces rôles. Vous pouvez accéder à cet outil depuis Cloud Shell dans la console Google Cloud:
Démarrer Cloud Shell
-
Attribuez le rôle Administrateur des importations et des exportations Cloud Datastore. Remplacez l'élément project_id et exécutez la commande suivante :
gcloud projects add-iam-policy-binding project_id \ --member serviceAccount:project_id@appspot.gserviceaccount.com \ --role roles/datastore.importExportAdmin
-
Attribuez le rôle Utilisateur des objets Storage à votre bucket. Remplacez les éléments bucket_name et project_id, puis exécutez la commande suivante :
gcloud storage buckets add-iam-policy-binding gs://bucket_name \ --member=serviceAccount:project_id@appspot.gserviceaccount.com \ --role=roles/storage.objectUser
Créer une tâche Cloud Scheduler
Ensuite, créez une tâche Cloud Scheduler qui appelle la fonction Cloud datastore_export
:
Accédez à la page Cloud Scheduler dans la console Google Cloud:
Cliquez sur Créer une tâche.
Saisissez un Nom pour la tâche, par exemple
scheduledDatastoreExport
.Saisissez une fréquence au format unix-cron.
Sélectionnez un Fuseau horaire.
Sous Cible, sélectionnez Pub/Sub. Dans le champ Sujet, saisissez le nom du sujet Pub/Sub que vous avez défini à côté de votre fonction Cloud,
startDatastoreExport
dans l'exemple ci-dessus.Dans le champ Charge utile, saisissez un objet JSON pour configurer l'opération d'exportation. La fonction Cloud
datastore_export
nécessite une valeurbucket
. Vous pouvez également inclure des valeurskinds
ounamespaceIDs
visant à définir un filtre d'entité, par exemple :Exporter toutes les entités
{ "bucket": "gs://bucket_name" }
Exporter des entités filtrées
Exporter les entités de genre
User
ouTask
à partir de tous les espaces de noms :{ "bucket": "gs://bucket_name", "kinds": ["User", "Task"] }
Exporter les entités de genre
User
ouTask
à partir des espaces de noms par défaut etTesters
. Utilisez une chaîne vide (""
) pour spécifier l'espace de noms par défaut :{ "bucket": "gs://bucket_name", "kinds": ["User", "Task"], "namespaceIds": ["", "Testers"] }
Exporter les entités de tout type à partir des espaces de noms par défaut et
Testers
. Utilisez une chaîne vide (""
) pour spécifier l'espace de noms par défaut :{ "bucket": "gs://bucket_name", "namespaceIds": ["", "Testers"] }
Où
bucket_name
est le nom de votre bucket Cloud Storage.Cliquez sur Créer.
Tester vos exportations planifiées
Pour tester votre fonction Cloud et votre tâche Cloud Scheduler, exécutez cette dernière sur la page Cloud Scheduler de Google Cloud Console. Si l'opération réussit, une opération d'exportation effective est déclenchée.
Accédez à la page Cloud Scheduler dans la console Google Cloud.
Accéder à Cloud SchedulerDans la ligne de votre nouvelle tâche Cloud Scheduler, cliquez sur Exécuter.
Patientez quelques secondes, puis cliquez sur Actualiser. La tâche Cloud Scheduler doit mettre à jour la colonne de résultats vers la mention Opération réussie et la colonne Dernière exécution vers l'heure en cours.
La page Cloud Scheduler confirme uniquement que la tâche a envoyé un message au sujet Pub/Sub. Pour confirmer que votre requête d'exportation a abouti, consultez les journaux de votre fonction Cloud.
Afficher les journaux Cloud Functions
Pour vérifier que la fonction Cloud a bien lancé une opération d'exportation, consultez la page Visionneuse de journaux dans la console Google Cloud.
Accéder à l'explorateur de journaux
Les journaux de la fonction Cloud signalent les erreurs ainsi que les lancements d'exportation ayant réussi.
Afficher la progression de l'exportation
Vous pouvez utiliser la commande gcloud datastore operations list
pour afficher la progression de vos opérations d'exportation. Consultez la section Répertorier toutes les opérations de longue durée.
Une fois l'exportation terminée, vous pouvez afficher les fichiers de sortie dans votre bucket Cloud Storage. Le service d'exportation géré utilise un horodatage pour organiser vos opérations d'exportation :