Access BigQuery by String Credential in Python

2017-11-12 geshai
  • GOOGLE_APPLICATION_CREDENTIALS 環境變數, 這個變數裡面放的是一個file path, 標明credential放在哪邊
  • 直接呼叫API bigquery.client.Client() , 會直接create一個instance裡面直接把環境變數裡的credential吃進來並且處理好, 非常方便且懶人, 但是彈性上就會有上述的問題
  • 爬code後, 發現他需要吃特定type的credential ( code link ) google.auth.credentials.Cedentials

  • 用service_account的API去創造credential ( code link )

    cred = service_account.Credentials.from_service_account_info(cred_dict)

  • Initial client的時候, 可以提供自己做出來的credential

    client = bigquery.client.Client(project=proj_name, credentials=cred)

直覺上這個方式應該是可以處理大部分在GCP上面content-based python client的認證.

同時在尋找解法的時候其實看到很多現有的解法(stackoverflow, quora...),已經因為API的改動之類的已經無法適用了,去看官方文件也不太好找或是寫的不是好懂,所以才去追原始碼.

意外發現google release的原始碼實在是很好追(只要找到進入點, comment寫得很完整, 程式的架構也很好, 值得好好學習QQ), 下次在GCP上面遇到類似的問題可以嘗試直接追原始碼看看會不會比較快得到方向及真正的做法.


用户评论
开源开发学习小组列表