2012-11-06 17 views
8

Utworzyłem konto usługi przy użyciu konsoli Google API i chcę użyć tego konta usługi za pomocą narzędzia Google BigQuery CLI (bq).Jak skonfigurować narzędzie wiersza polecenia Google BigQuery do korzystania z konta usługi?

Korzystam z narzędzia wiersza poleceń, aby uzyskać dostęp do usługi BigQuery przy użyciu moich poprawnych danych uwierzytelniających OAuth2 w pliku ~/.bigquery.v2.token, jednak nie mogę znaleźć żadnej dokumentacji dotyczącej modyfikowania tego pliku (lub w inny sposób skonfigurować narzędzie), aby zamiast tego używać konta usługi.

Tu jest mój bieżący plik .bigquery.v2.token

{ 
    "_module": "oauth2client.client", 
    "_class": "OAuth2Credentials", 
    "access_token": "--my-access-token--", 
    "token_uri": "https://accounts.google.com/o/oauth2/token", 
    "invalid": false, 
    "client_id": "--my-client-id--.apps.googleusercontent.com", 
    "id_token": null, 
    "client_secret": "--my-client-secret--", 
    "token_expiry": "2012-11-06T15:57:12Z", 
    "refresh_token": "--my-refresh-token--", 
    "user_agent": "bq/2.0" 
} 

Mój inny plik: ~/.bigqueryrc ogólnie wygląda następująco:

project_id = --my-project-id-- 
credential_file = ~/.bigquery.v2.token 

Próbowałem ustawienie paramater credential_file do pliku klucza prywatnego .p12 dla mojego konta usługi, ale bez powodzenia, daje mi następujący błąd:

****************************************************************** 
** No OAuth2 credentials found, beginning authorization process ** 
****************************************************************** 

Prosi mnie, żebym kliknął link w mojej przeglądarce, aby ponownie skonfigurować moje dane uwierzytelniające OAuth2.

początkowa linia opcja polecenia Narzędzia konfiguracja «init»:

bq help init 

nie wyświetla przydatne informacje o tym, jak skonfigurować to narzędzie do korzystania z konta usługi.

Odpowiedz

5

skończyło się znalezieniem jakąś dokumentację, w jaki sposób skonfigurować to

$ bq --help 

.... 

--service_account: Use this service account email address for authorization. For example, [email protected] 
(default: '') 

--service_account_credential_file: File to be used as a credential store for service accounts. Must be set if using a service account. 

--service_account_private_key_file: Filename that contains the service account private key. Required if --service_account is specified. 
(default: '') 

--service_account_private_key_password: Password for private key. This password must match the password you set on the key when you created it in the Google APIs Console. Defaults to the default Google APIs Console private key password. 
(default: 'notasecret') 

.... 

Można też ustawić te specjalnie na każdym (klient BigQuery poleceń) wniosek BQ, tj:

$ bq --service_account --my-client-id--.apps.googleusercontent.com -- service_account_private_key_file ~/.bigquery.v2.p12 ... [command] 

albo można ustawić wartości domyślne w pliku ~/.bigqueryrc, np.

project_id = --my-project-id-- 
service_account = [email protected] 
service_account_credential_file = /home/james/.bigquery.v2.cred 
service_account_private_key_file = /home/james/.bigquery.v2.p12 

Usługa nt można znaleźć w konsoli Google API Console i skonfigurować hasło service_account_private_key_password podczas tworzenia konta usługi (domyślnie jest to "notasecret").

uwaga: ścieżki plików w .bigqueryrc musiała być pełna ścieżka, nie byłem w stanie wykorzystać ... ~/.bigquery były wymagane

Niektóre dodatkowe zależności, trzeba będzie zainstalować OpenSSL poprzez yum/apt-get

--yum-- 
$ yum install openssl-devel libssl-devel 

--or apt-get-- 
$ apt-get install libssl-dev 

i pyopenssl poprzez łatwo zainstalować/pip

--easy install-- 
$ easy_install pyopenssl 

--or pip-- 
$ pip install pyopenssl 
+0

Postępowanie zgodnie z instrukcjami dotyczącymi korzystania z konta usługi za pomocą obrazu w doku jest znacznie łatwiejsze w systemie OS X co najmniej: https://hub.docker.com/r/google/cloud-sdk/ – mentat

+0

Właściwy sposób korzystania z poświadczeń konta usługi na bq cli jest aktywowanie go za pomocą polecenia "gcloud auth-service-account", a następnie uruchomienie bq bez żadnych flag auth. Te flagi bq służą wyłącznie do użytku wewnętrznego gcloud. Nie ustawiaj ich, przeszkadza to gcloud i prowadzi do nieprzewidzianych wyników. – Daria

1

narzędzie bq wymaga dwóch plików konfiguracyjnych, kontrolowane przez flagę --bigqueryrc i --credential_file. Jeśli żadna z nich nie zostanie znaleziona, bq spróbuje automatycznie zainicjować podczas uruchamiania.

Aby tego uniknąć w pliku --bigqueryrc, możesz umieścić plik ".bigqueryrc" w domyślnej lokalizacji lub zastąpić go --bigqueryrc ścieżką do zapisu.

Powiązane problemy