14

Google API コンソールを使用してサービス アカウントを作成しました。このサービス アカウントをGoogle BigQuery CLI (bq) ツールで使用したいと考えています。

コマンドライン ツールを使用して、~/.bigquery.v2.token の有効な OAuth2 認証情報を使用して BigQuery サービスに正常にアクセスしましたが、このファイルを変更する方法 (または構成する方法) に関するドキュメントが見つからないようです。ツール) を使用して、代わりにサービス アカウントを使用します。

これが私の現在の .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"
}

私の他のファイル: ~/.bigqueryrc 通常、次のようになります。

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

サービス アカウントの credential_file パラメータを .p12 秘密鍵ファイルに設定しようとしましたが、運が悪く、次のエラーが返されます

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

そして、ブラウザのリンクに移動して、OAuth2 資格情報を再度設定するように求められます。

コマンド ライン ツールの初期設定オプション「init」:

bq help init

サービス アカウントを使用するようにこのツールを設定する方法について、役立つ情報は表示されません。

4

5 に答える 5

9

これを設定する方法に関するいくつかのドキュメントを見つけました

$ bq --help

....

--service_account: Use this service account email address for authorization. For example, 1234567890@developer.gserviceaccount.com.
(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')

....

これらは、bq (bigquery コマンドライン クライアント) リクエストごとに具体的に設定できます。つまり、次のようになります。

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

または、次のように ~/.bigqueryrc ファイルにデフォルトを設定することもできます

project_id = --my-project-id--
service_account = --my-client-id--@developer.gserviceaccount.com
service_account_credential_file = /home/james/.bigquery.v2.cred
service_account_private_key_file = /home/james/.bigquery.v2.p12

サービス アカウントは Google API コンソールで見つけることができ、サービス アカウントの作成時に service_account_private_key_password を設定します (これはデフォルトで "notasesecret" になります)。

注: .bigqueryrc のファイル パスはフル パスである必要があり、~/.bigquery を使用できませんでした...

いくつかの追加の依存関係が必要でした。yum/apt-get 経由で openssl をインストールする必要があります。

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

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

および簡単なインストール/ピップによる pyopenssl

--easy install--
$ easy_install pyopenssl

--or pip--
$ pip install pyopenssl
于 2012-11-06T16:30:35.537 に答える
1

bq ツールには、--bigqueryrc フラグと --credential_file フラグによって制御される 2 つの構成ファイルが必要です。どちらも見つからない場合、bq は起動時に自動的に初期化を試みます。

--bigqueryrc ファイルでこれを回避するには、「.bigqueryrc」ファイルをデフォルトの場所に配置するか、書き込み可能なファイル パスに --bigqueryrc で上書きします。

于 2013-11-23T01:51:40.493 に答える