使用服務帳戶金鑰檔案驗證

手動建立並取得服務帳戶憑證,以便在應用程式部署在內部或其他公用雲端平台的情況下使用 BigQuery。您可以設定環境變數,以便使用應用程式預設憑證載入憑證,也可以在應用程式程式碼中指定手動載入憑證的路徑。

本指南將為您說明如何從檔案中載入憑證。

事前準備

從檔案載入憑證

在應用程式中建立從服務帳戶檔案載入的憑證,然後使用憑證透過 BigQuery 用戶端程式庫建立服務物件。

C#

在試行此示例之前,請前往 BigQuery 快速入門導覽課程:使用用戶端程式庫頁面,按照 C# 設定說明進行操作。詳情請參閱 BigQuery C# API 參考說明文件

使用 GoogleCredential.FromStream(Stream) 從 JSON 檔案載入憑證。

建立 GoogleCredential 之後,請將其傳送至 BigQueryClient.Create(String, GoogleCredential) 以建立 BigQuery 服務物件。

如需相關範例,請參閱設定伺服器對伺服器正式版應用程式的驗證作業一文。

Java

在試行此示例之前,請前往 BigQuery 快速入門導覽課程:使用用戶端程式庫頁面,按照 Java 設定說明進行操作。詳情請參閱 BigQuery Java API 參考說明文件

從使用 ServiceAccountCredentials.fromStream(InputStream) 的檔案建立 ServiceAccountCredentials 物件。將憑證傳送至 BigQueryOptions.Builder 並透過這些選項建立 BigQuery 服務。

public static void explicit() throws IOException {
  // Load credentials from JSON key file. If you can't set the GOOGLE_APPLICATION_CREDENTIALS
  // environment variable, you can explicitly load the credentials file to construct the
  // credentials.
  GoogleCredentials credentials;
  File credentialsPath = new File("service_account.json");  // TODO: update to your key path.
  try (FileInputStream serviceAccountStream = new FileInputStream(credentialsPath)) {
    credentials = ServiceAccountCredentials.fromStream(serviceAccountStream);
  }

  // Instantiate a client.
  BigQuery bigquery =
      BigQueryOptions.newBuilder().setCredentials(credentials).build().getService();

  // Use the client.
  System.out.println("Datasets:");
  for (Dataset dataset : bigquery.listDatasets().iterateAll()) {
    System.out.printf("%s%n", dataset.getDatasetId().getDataset());
  }
}

Python

在試行此示例之前,請前往 BigQuery 快速入門導覽課程:使用用戶端程式庫頁面,按照 Python 設定說明進行操作。詳情請參閱 BigQuery Python API 參考說明文件

使用 google.oauth2.service_account.Credentials.from_service_account_file,透過服務帳戶金鑰檔案進行驗證。使用憑證建立 BigQuery 用戶端

from google.cloud import bigquery
from google.oauth2 import service_account

# TODO(developer): Set key_path to the path to the service account key
#                  file.
# key_path = "path/to/service_account.json"

credentials = service_account.Credentials.from_service_account_file(
    key_path,
    scopes=["https://www.googleapis.com/auth/cloud-platform"],
)

client = bigquery.Client(
    credentials=credentials,
    project=credentials.project_id,
)

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
需要協助嗎?請前往我們的支援網頁