我已經使用Google API控制檯創建了一個服務帳戶,並希望將此服務帳戶與Google BigQuery CLI(bq)工具結合使用。如何配置Google BigQuery命令行工具以使用服務帳戶?
我一直在使用命令行工具在〜/ .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 paramater到我的服務帳戶.p12私鑰文件,但沒有運氣,它給我回以下錯誤
******************************************************************
** No OAuth2 credentials found, beginning authorization process **
******************************************************************
並要求我轉到瀏覽器中的鏈接以再次設置我的OAuth2憑據。
命令行工具的初始配置選項‘初始化’:
bq help init
顯示有關如何設置這個工具來使用服務帳戶沒有有用的信息。
以下使用Docker鏡像服務帳戶的說明至少在OS X上很容易:https://hub.docker.com/r/google/cloud-sdk/ – mentat
正確使用服務帳戶憑證的方式在bq cli上是使用「gcloud auth activate-service-account」命令激活它,然後在沒有任何auth標誌的情況下運行bq。這些bq標誌僅供gcloud內部使用。請不要設置它們,它會干擾gcloud並導致不可預測的結果。 – Daria