在Google Compute Engine實例上驗證Google BigQuery的最簡單方法是什麼?如何在Google Compute Engine上驗證BigQuery?
4
A
回答
2
確保您的實例具有範圍t o首先訪問BigQuery - 您只能在創建時決定這一點。
在bash腳本,通過調用得到的OAuth令牌:
ACCESSTOKEN=`curl -s "http://metadata/computeMetadata/v1/instance/service-accounts/default/token" -H "X-Google-Metadata-Request: True" | jq ".access_token" | sed 's/"//g'`
echo "retrieved access token $ACCESSTOKEN"
現在讓我們假設你想要的數據組中的一個項目列表:
CURL_URL="https://www.googleapis.com/bigquery/v2/projects/YOURPROJECTID/datasets"
CURL_OPTIONS="-s --header 'Content-Type: application/json' --header 'Authorization: OAuth $ACCESSTOKEN' --header 'x-goog-project-id:YOURPROJECTID' --header 'x-goog-api-version:1'"
CURL_COMMAND="curl --request GET $CURL_URL $CURL_OPTIONS"
CURL_RESPONSE=`eval $CURL_COMMAND`
JSON格式的響應可以在變量CURL_RESPONSE中找到
PS:我現在意識到這個問題被標記爲Python,但同樣的原則適用。
3
在Python:
AppAssertionCredentials
是一個python類,允許計算引擎實例將自身標識爲谷歌和其它的OAuth 2.0服務器,全無需要流動。
https://developers.google.com/api-client-library/python/
項目ID可以從元數據服務器讀取,所以它並不需要設置爲一個變量。
https://cloud.google.com/compute/docs/metadata
以下代碼獲取令牌使用AppAssertionCredentials,從元數據服務器的項目編號,並實例化一個BigqueryClient與此數據:
import bigquery_client
import urllib2
from oauth2client import gce
def GetMetadata(path):
return urllib2.urlopen(
'http://metadata/computeMetadata/v1/%s' % path,
headers={'Metadata-Flavor': 'Google'}
).read()
credentials = gce.AppAssertionCredentials(
scope='https://www.googleapis.com/auth/bigquery')
client = bigquery_client.BigqueryClient(
credentials=credentials,
api='https://www.googleapis.com',
api_version='v2',
project_id=GetMetadata('project/project-id'))
對於這個工作,你需要給創建它時,GCE實例訪問BigQuery API:
gcloud compute instances create <your_instance_name> --scopes storage-ro bigquery
相關問題
- 1. Google Compute Engine GPU
- 2. Google Compute Engine上的Spark SQL
- 3. Google Compute Engine上的FreeBSD
- 4. 在Google Compute Engine上成功安裝Oryx?
- 5. 端口5432在Google Compute Engine上關閉
- 6. 在Debian(Google Compute Engine)上安裝libssl0.9.7
- 7. 在Google Compute Engine上添加Secundary IP
- 8. 在Google Compute Engine的Tomcat上啓用SSL
- 9. 'Google App Engine'遠比'Google Compute Engine'貴嗎?
- 10. 如何休眠Google Compute Engine服務器?
- 11. Google App Engine +驗證
- 12. 如何使用kube-up在Google Compute Engine上創建CoreOS羣集?
- 13. 如何在Google Compute Engine上執行服務器更新?
- 14. 在Amazon EC2/Google Compute Engine中設置XNAT
- 15. 在Google Compute Engine上無法在Debian 7上加載Couchbase Web UI
- 16. 如何隨時記錄Google Compute Engine上的RAM使用情況?
- 17. Ansible提供Google Compute Engine的JSON憑證文件在哪裏?
- 18. Google App Engine身份驗證
- 19. Google App Engine身份驗證
- 20. 驗證短信 - Google App Engine
- 21. App Engine和BIGQUERY認證
- 22. 如何在Google Compute Engine中打開特定端口(如9090)
- 23. Google App Engine與Google Compute Engine有什麼區別?
- 24. 啓用Google Container Engine API不會自動啓用Google Compute Engine API
- 25. 如何獲取我在Google Compute Engine中生成的SSH密鑰?
- 26. Google Compute Engine - 刪除帳戶+資源
- 27. Google Compute Engine虛擬機備份策略
- 28. Google Compute Engine負載平衡器限制
- 29. Gitlab - Google compute engine持續交付
- 30. Google Compute Engine:來自OAuth的錯誤403
感謝您的回答,我添加了bash和curl標籤以保證適當性:) – 2014-09-27 21:47:33