2012-11-06 42 views
8

Tôi đã tạo tài khoản dịch vụ bằng Bảng điều khiển API của Google và muốn sử dụng tài khoản dịch vụ này bằng công cụ Google BigQuery CLI (bq).Tôi làm cách nào để định cấu hình công cụ dòng lệnh Google BigQuery để sử dụng Tài khoản dịch vụ?

Tôi đã sử dụng công cụ dòng lệnh để truy cập thành công dịch vụ BigQuery bằng thông tin đăng nhập OAuth2 hợp lệ của tôi trong ~/.bigquery.v2.token, tuy nhiên tôi dường như không tìm thấy bất kỳ tài liệu nào về cách sửa đổi tệp này (hoặc cấu hình công cụ khác) để sử dụng tài khoản dịch vụ thay thế.

Đây là tập tin .bigquery.v2.token hiện tại của tôi

{ 
    "_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" 
} 

tập tin khác của tôi: ~/.bigqueryrc thường trông như thế này:

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

Tôi đã thử đặt paramater credential_file vào tệp khóa riêng tư .p12 cho tài khoản dịch vụ của tôi nhưng không có may mắn, nó mang lại cho tôi lỗi sau

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

Và yêu cầu tôi truy cập liên kết trong trình duyệt của tôi để thiết lập lại thông tin đăng nhập OAuth2 của tôi.

tùy chọn Các công cụ dòng lệnh ban đầu cấu hình 'init':

bq help init 

hiển thị không có thông tin hữu ích về cách thiết lập công cụ này để sử dụng một tài khoản dịch vụ.

Trả lời

5

tôi đã kết thúc việc tìm kiếm một số tài liệu về cách thiết lập này lên

$ 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') 

.... 

Bạn có thể có thể thiết lập các đặc biệt trên mỗi bq (commandline client bigquery) yêu cầu, ví dụ:

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

Hoặc bạn có thể thiết lập giá trị mặc định trong file ~/.bigqueryrc của bạn như vậy

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 

dịch vụ accou nt có thể được tìm thấy trong Google API Console và bạn thiết lập service_account_private_key_password khi tạo tài khoản dịch vụ của mình (mặc định là "notasecret").

lưu ý: đường dẫn tập tin trong .bigqueryrc phải có đường dẫn đầy đủ, tôi đã không thể sử dụng ~/.bigquery ...

Một số phụ thuộc bổ sung được yêu cầu, bạn sẽ cần phải cài đặt openssl qua yum/apt-get

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

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

và pyopenssl qua dễ dàng cài đặt/pip

--easy install-- 
$ easy_install pyopenssl 

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

Thực hiện theo các hướng dẫn để thực hiện tài khoản dịch vụ bằng hình ảnh docker dễ dàng hơn trên OS X ít nhất: https://hub.docker.com/r/google/cloud-sdk/ – mentat

+0

Cách đúng để sử dụng bằng chứng xác thực tài khoản dịch vụ trên bq cli là kích hoạt nó bằng cách sử dụng lệnh "gcloud auth activate-service-account" và sau đó chạy bq mà không có bất kỳ cờ auth nào. Những lá cờ bq chỉ dành cho việc sử dụng nội bộ gcloud. Xin vui lòng không đặt chúng, nó can thiệp vào gcloud và dẫn đến kết quả không lường trước. – Daria

1

Công cụ bq đòi hỏi hai tập tin cấu hình, được kiểm soát bởi --bigqueryrc và cờ --credential_file. Nếu không tìm thấy, bq sẽ cố gắng tự động khởi tạo trong khi khởi động.

Để tránh điều này cho tệp --bigqueryrc, bạn có thể đặt tệp ".bigqueryrc" ở vị trí mặc định hoặc ghi đè bằng --bigqueryrc vào một số đường dẫn tệp có thể ghi.

Các vấn đề liên quan