Mit einer Dienstkontoschlüsseldatei authentifizieren

Sie können Anmeldedaten für ein Dienstkonto manuell erstellen und abrufen, um BigQuery zu verwenden, wenn eine Anwendung lokal oder in anderen öffentlichen Clouds bereitgestellt wird. Dabei haben Sie die Möglichkeit, die Umgebungsvariable so festzulegen, dass die Anmeldedaten mithilfe von Standardanmeldedaten für Anwendungen geladen werden, oder Sie können den Pfad angeben, um die Anmeldedaten manuell in Ihren Anwendungscode zu laden.

In dieser Anleitung wird erklärt, wie Sie die Anmeldedaten aus einer Datei laden.

Vorbereitung

Anmeldedaten aus einer Datei laden

Anmeldedaten in Ihrer Anwendung erstellen Sie aus der Dienstkontodatei. Mit den Anmeldedaten können Sie dann ein Dienstobjekt in den BigQuery-Clientbibliotheken erstellen.

C#

Laden Sie die Anmeldedaten mit GoogleCredential.FromStream(Stream) aus der JSON-Datei herunter.

Übergeben Sie GoogleCredential nach der Erstellung BigQueryClient.Create(String, GoogleCredential), um das BigQuery-Dienstobjekt zu erstellen.

Beispiele finden Sie unter Authentifizierung für Server-zu-Server-Produktionsanwendungen einrichten.

Java

Erstellen Sie mit ServiceAccountCredentials ein ServiceAccountCredentials.fromStream(InputStream)-Objekt aus einer Datei. Übergeben Sie anschließend die Anmeldedaten an BigQueryOptions.Builder und erstellen Sie den BigQuery-Dienst aus diesen Optionen.

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

Verwenden Sie bigquery.Client.from_service_account_json(path), um mit der Schlüsseldatei des Dienstkontos einen BigQuery-Client zu erstellen.

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"
)

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...