J'ai implémenté quelques tâches avec BashOperator. Ceux avec "gsutil rm" et "gsutil cp" ont bien fonctionné. Mais celui avec "gcloud alpha firestore export" génère cette erreur:
{bash_operator.py:101} INFO - ERROR: (gcloud.alpha.firestore.export) PERMISSION_DENIED: The caller does not have permission
Cette commande elle-même fonctionne très bien dans gcloud Shell. J'ai essayé de donner des autorisations liées à Firestore au compte de service utilisé par le Composer mais cela ne fonctionne toujours pas. Toute idée
Essayez de créer un nouveau compte de service avec les autorisations liées à Firestore nécessaires et utilisez-le dans un environnement fraîchement créé. https://cloud.google.com/composer/docs/how-to/access-control
Autres idées de débogage: * Essayez ssh-ing dans les travailleurs Kubernetes sur votre environnement Composer et exécutez la commande. * L'API Firestore est-elle activée sur votre projet?
Il se peut que vous n'ayez pas d'autorisations pour un projet particulier.
L'erreur que j'obtenais était: PERMISSION_DENIED: Caller does not have required permission to use project project:random-id-11111.
J'ai résolu le problème en exécutant gcloud config set project 'the-right-project-id'
puis la commande réelle gcloud
.
Ce n'est pas vraiment intuitif ou logique car il n'y a pas d'autorisations ou de rôles pour Firestore.
Malheureusement, il m'a fallu beaucoup de temps pour le comprendre. J'espère que ça aide les autres!
Je pense que vous avez besoin d'un accès Cloud Import Datastore Export. Voici les étapes selon la disposition actuelle de la plateforme Google Cloud actuelle.
https://console.cloud.google.com > Tiroir de gauche> IAM et administrateur> Contre l'utilisateur - Modifier l'icône> Ajouter un autre rôle> Magasin de données> Importation et exportation de magasin de données cloud> Enregistrer
Semblable à la réponse de Roy, le problème pour moi était que gcloud
était réglé sur un projet différent.
gcloud config list
liste des projets gcloud
gcloud config set project 'foo-project'
vous devez d'abord définir votre projet où vous êtes propriétaire gcloud config définir le projet project-id Vous pouvez trouver votre identifiant de projet en cliquant sur la console gcloud, il sera là dans une fenêtre contextuelle dans project-name-somerandomnumbers