0
votes

Accédez à BigQuery Datastore de Project1 de Python Cloud Fonction dans le projet 2 à l'aide de Compte de service Clé JSON du projet 1

J'ai 2 projets différents en GCP.

J'ai besoin d'accéder à Bigquery Datastore du projet-1 . Ont créé la clé de service de service requise.

ont écrit une fonction Python Cloud dans le projet-2 . J'ai besoin d'accéder à Bigquery Data Store of Project-1. Si je comprends bien, j'ai besoin de récupérer les informations d'identification du fichier de clé JSON Compte de service (à partir du projet-1). Ont téléchargé le fichier de service de service JSON du fichier de stockage du projet-2.

J'essaie de récupérer les informations d'identification de ce fichier de clé JSON . Ont essayé de suivre différentes méthodes:
Creidentials = Service_account.Credentials.from_service_account_file (nom de fichier, scopes = ' https://www.googleapis.com / auth / cloud-plate-forme ') ou alors client = bigquery.client.from_service_account_json (nom de fichier) ou alors client = bigquery.client.from_service_account_file (nom de fichier) ou alors Critiques = Service_account.Credentials.from_service_account_info (Service_account_info)

et je continue à obtenir une erreur,

[ERRNO 2] Aucun fichier ou annuaire: fichier de fichier

J'ai essayé de donner nom de fichier comme URL ou Linkurl ou URL publique du fichier godet JSON.

Veuillez indiquer comment nous pouvons accéder à la bigquery du projet -1 à partir de la fonction de cloud de Project-2 et je dispose de la clé JSON de compte de service à partir du projet-1. xxx

de la fonction de cloud Python dans le projet 2 Utilisation du service Compte JSON Clé du projet 1


0 commentaires

3 Réponses :


1
votes

Les comptes de service ont des adresses postales telles que les comptes d'utilisateurs.

Vous pouvez donc donner des autorisations requises à user@project2.iam.gserviceaccompount.com sur Project1 DataSet / Tables? Avez-vous vraiment besoin d'un autre compte de service sur Project2 ?


2 commentaires

Vous ne pouvez pas ajouter d'accès aux tables de données du projet-1 dans le compte de service du projet-2. Donc, cela peut ne pas fonctionner. Nous devons rechercher comment accéder à n'importe quelle clé de service JSON Clé du projet-1 dans la fonction Cloud du projet-2. Veuillez suggérer.


Ça marche pour moi. J'ai un compte de service dans le projet projecta. Mes jeux de données et mes tables dans le projet. Aussi je gère des requêtes sur un autre projet. (pour les coûts de requête de facturation à la fin du projet)



0
votes

J'ai besoin de clarifier d'abord:

  1. Je remarque que vous stockez le compte de service dans Projet 2 Comment passer cela à votre fonction Cloud? Utilisez-vous un client GCS pour lire le contenu du compte de service, puis défini est comme Google_Applications_Credentials variable d'environnement?
  2. Si vous créez déjà un compte de service et téléchargez la clé de Project 1 , il vous suffit de vous assurer de pouvoir interroger les données par accès acquis nécessaire, par exemple BigQuery Viewer si vous n'avez besoin que d'interroger les données. Après cela, vous avez passé les informations d'identification et vous pouvez procéder à l'étape que vous avez déjà mentionnée précédemment.

1 commentaires

Hey @rakeshgupta Si cela vous a aidé alors s'il vous plaît répondez à votre propre question et la marque résolue. Cela permet aux autres avec le même problème de voir directement la solution plutôt que dans les commentaires. De plus, d'autres peuvent uppoter cette réponse ... merci!



1
votes

Merci pour votre aide. Nous sommes en mesure de le faire fonctionner.

C'est comme suit:

  1. Créer un compte de service dans le projet 2

  2. Dans le projet 1, ajoutez un nouveau rôle IAM avec le nouveau membre en tant que numéro de compte de service Project 2 et donnez accès à BigQuery of Project 1

  3. dans le projet 2, ajoutez un ID de compte de service pour exécuter la fonction Cloud

  4. dans la fonction Cloud, faites-vous juste référence au projet 1 comme Client = BigQuery.client (Project = 'Project 1) et nous sommes en mesure de récupérer les données de BigQuery. -


0 commentaires