3

Google Compute Engine にインストールされた R Studio から BigQuery を呼び出そうとしています。

インスタンスに bq python ツールがインストールされており、そのサービス アカウントと system() を使用して、R に bq コマンド ライン ツールを呼び出してデータを取得させたいと考えていました。

ただし、認証の問題が発生し、ブラウザ キーが要求されます。サービス アカウントのためにキーを取得する必要はないと確信していますが、R を使用して認証を構築する方法がわかりません (RStudio で実行されるため、複数のユーザーが存在します)。

次のような認証トークンを取得できます。

library(RCurl)
library(RJSONIO)
metadata <-  getURL('http://metadata/computeMetadata/v1beta1/instance/service-accounts/default/token')
tokendata <- fromJSON(metadata)

tokendata$$access_token

しかし、これを使用して .bigqueryrc トークンを生成するにはどうすればよいでしょうか? これがないと、認証の試行がトリガーされます。

これはうまくいきます:

system('/usr/local/bin/bq')

bq が正常にインストールされていることを示しています。

しかし、次のようなことを試みると:

   system('/usr/local/bin/bq ls')

私はこれを得る:

Welcome to BigQuery! This script will walk you through the process of initializing your .bigqueryrc configuration file.

First, we need to set up your credentials if they do not already exist.


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

Go to the following link in your browser:

https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fbigquery&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&client_id=XXXXXXXX.apps.googleusercontent.com&access_type=offline

Enter verification code: You have encountered a bug in the BigQuery CLI. Google engineers monitor and answer questions on Stack Overflow, with the tag google-bigquery:     http://stackoverflow.com/questions/ask?tags=google-bigquery

etc.

編集:

RStudio を使用してユーザーとしてターミナルにログインし、ブラウザ経由でサインインして認証し、RStudio に再度ログインして system("bq ls") など..これで十分です:)

ただし、多くのユーザーがログインする可能性があり、すべてのユーザーに対してターミナルを介して認証する必要があるため、RStudio 自体で BQ を認証できる場合は、それでもなお望ましいと思います。そして、サービス アカウントのドキュメントと、認証トークンを取得できるという事実から、これがより簡単であることを示唆しています。

4

1 に答える 1

3

当面の間、GCE のスクリプトから bq を呼び出す前に、コマンド ラインから「bq init」を実行して認証情報を設定する必要があります。ただし、bq の次のリリースには、新しい --use_gce_service_account フラグによる GCE サービス アカウントのサポートが含まれます。

于 2013-05-24T06:34:04.617 に答える