使用服务帐号密钥文件进行身份验证

如果在本地或其他公有云中部署应用,则需要先手动创建并获取服务帐号凭据,才能使用 BigQuery。您可以将环境变量设置为使用应用默认凭据来加载凭据,也可以通过手动在应用代码中指定路径来加载凭据。

本指南将为您介绍如何从文件中加载凭据。

准备工作

从文件中加载凭据

通过服务帐号文件在应用中创建凭据。然后,使用凭据创建包含 BigQuery 客户端库的服务对象。

C#

使用 GoogleCredential.FromStream(Stream) 从 JSON 文件加载凭据。

创建 GoogleCredential 后,将其传递至 BigQueryClient.Create(String, GoogleCredential) 以创建 BigQuery 服务对象。

有关示例,请参阅为服务器到服务器的生产应用设置身份验证

Java

使用 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.Client.from_service_account_json(path),使用服务帐号密钥文件创建 BigQuery 客户端

from google.cloud import bigquery

# Explicitly use service account credentials by specifying the private
# key file. All clients in google-cloud-python have this helper.
client = bigquery.Client.from_service_account_json(
    "path/to/service_account.json"
)

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面