簡體   English   中英

使用服務帳戶憑據連接到 BigQuery?

[英]Connect to BigQuery with Service Account Credentials?

我創建了一個 Google 服務帳戶來訪問 BigQuery,它提供了一個 .json 憑證文件,如下所示:

{
  "type": "service_account",
  "project_id": "<redacted>",
  "private_key_id": "<redacted>",
  "private_key": "-----BEGIN PRIVATE KEY-----<redacted>\n-----END PRIVATE KEY-----\n",
  "client_email": "<redacted>",
  "client_id": "<redacted>",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "<redacted>"
}

使用機密管理器,我將上面的內容加載到 Python dict bigquery_credentials中,然后嘗試連接:

client = bigquery.Client(credentials=bigquery_credentials)

我收到錯誤:

DefaultCredentialsError: Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For more information, please see https://cloud.google.com/docs/authentication/getting-started

顯然,我沒有以有效方式傳遞憑據, bigquery.Client無法識別它們。

文檔說“將環境變量 GOOGLE_APPLICATION_CREDENTIALS 設置為包含您的服務帳戶密鑰的 JSON 文件的路徑。”

我寧願避免使用文件系統。 此代碼在我可能無法訪問本地文件系統的環境中運行。 此外,我正在使用一個秘密管理器:將秘密存儲在文件系統上被認為是一種安全風險。

有什么方法可以將服務 account.json 憑據指定給bigquery.Client嗎?

我只有這個,您可以使用以下內容:

from google.cloud import bigquery

client = bigquery.Client.from_service_account_json("/path/to/your/file.json")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM