Node.js-Clientbibliotheken verwenden

In diesem Dokument wird erläutert, wie Sie die Node.js-Clientbibliotheken der Google Cloud Platform verwenden, um Anfragen zu autorisieren und VM-Instanzen der Compute Engine aufzulisten. Dieses Beispiel beschreibt außerdem die Verwendung der Bibliotheken gcloud-node und google-api-nodejs-client für den Zugriff auf Compute Engine-Ressourcen von außerhalb und innerhalb einer VM-Instanz. In diesem Dokument geht es nicht um die Erstellung und Ausführung von Anwendungen innerhalb einer VM-Instanz.

Eine vollständige Liste verfügbarer Clientbibliotheken, einschließlich weiterer Google-Clientbibliotheken und Open-Source-Bibliotheken von Drittanbietern, finden Sie auf der Seite "Clientbibliotheken".

Voraussetzungen

Bereiten Sie zuerst die Entwicklungsumgebung für Node.js vor.

Weiter zum Einrichtungsleitfaden für Node.js

Cloudprojekt

Erstellen Sie ein Projekt in der Google Cloud Platform Console und aktivieren Sie die Abrechnung. Das Projekt enthält Ihre gesamten Ressourcen unter einem einzelnen Namespace. Die Abrechnung ist erforderlich, um in Ihrem Projekt Instanzen erstellen zu können.

Cloud SDK

Das Cloud SDK enthält Tools und Bibliotheken, mit denen Ressourcen problemlos auf der Google Cloud Platform erstellt und verwaltet werden können. Informationen dazu, wie Sie das SDK für Ihre Plattform erhalten, finden Sie in der Cloud SDK-Installationsanleitung.

Nach der Installation des SDK authentifizieren und bestimmen Sie Ihr Standardprojekt:

$ gcloud init

Erste Schritte mit der Google Cloud-Clientbibliothek für Node.js

Die Bibliothek @google-cloud/compute ist die empfohlene idiomatische Methode, um auf Google Cloud-Dienste zuzugreifen und mit diesen zu interagieren. Verwenden Sie wenn möglich die Google Cloud-Clientbibliothek anstelle der Google API-Clientbibliothek. Installieren Sie die Google Cloud-Clientbibliothek für die Compute Engine API mit dem folgenden Befehl:

$ npm install --save @google-cloud/compute

Zweck dieser Übung ist es, zu veranschaulichen, wie Anfragen autorisiert werden und wie eine einfache operative Aufgabe mit der Google Cloud-Clientbibliothek für Node.js ausgeführt wird.

Anfragen autorisieren

In diesem Beispiel wird die Autorisierung mit OAuth 2.0 verwendet. Es gibt viele Möglichkeiten, Anfragen mit OAuth 2.0 zu autorisieren, aber für dieses Beispiel verwenden Sie die Standardanmeldedaten für Anwendungen. Dadurch können Sie die Anmeldedaten des gcloud-Tools wiederverwenden. Dieses Tool sollten Sie bereits im Abschnitt Voraussetzungen installiert und autorisiert haben.

// By default, the client will authenticate using the service account file
// specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable and use
// the project specified by the GCLOUD_PROJECT environment variable. See
// https://cloud.google.com/docs/authentication/production#providing_credentials_to_your_application
const Compute = require('@google-cloud/compute');

Die API initialisieren

Bevor Sie Anfragen senden können, müssen Sie zuerst eine Instanz des Google Compute Engine-Dienstes initialisieren:

// Creates a client
const compute = new Compute();

Instanzen auflisten

Nachdem Sie nun über eine autorisierte Instanz verfügen, können Sie den Client nutzen, um Anfragen an die Google Compute Engine API zu senden.

Um die Instanzen in Ihrem Projekt aufzulisten, verwenden Sie den Aufruf compute.getVMs():

async function getVmsExample() {
  // In this example we only want one VM per page
  const options = {
    maxResults: 1,
  };
  const vms = await compute.getVMs(options);
  return vms;
}

Das vollständige Beispiel:

'use strict';

// By default, the client will authenticate using the service account file
// specified by the GOOGLE_APPLICATION_CREDENTIALS environment variable and use
// the project specified by the GCLOUD_PROJECT environment variable. See
// https://cloud.google.com/docs/authentication/production#providing_credentials_to_your_application
const Compute = require('@google-cloud/compute');

// Creates a client
const compute = new Compute();

async function getVmsExample() {
  // In this example we only want one VM per page
  const options = {
    maxResults: 1,
  };
  const vms = await compute.getVMs(options);
  return vms;
}

Erste Schritte mit der Google API-Clientbibliothek für Node.js

Die Bibliothek google-api-nodejs-client enthält die zentrale Node.js-Bibliothek für den Zugriff auf Google-APIs und außerdem die OAuth 2.0-Clientbibliothek. Diese Bibliothek ist ein Low-Level-Wrapper für Google REST-APIs. Eine idiomatischere Art, auf Google Cloud Platform-APIs zuzugreifen, bietet die Bibliothek gcloud-node. Die typische Installation erfolgt einfach mit:

$ npm install --save googleapis

Zweck dieser Übung ist es, zu veranschaulichen, wie Anfragen autorisiert werden und wie eine einfache operative Aufgabe mit der Google API-Clientbibliothek für Node.js ausgeführt wird.

Anfragen autorisieren

In diesem Beispiel wird die OAuth 2.0-Autorisierung verwendet. Es gibt verschiedene Möglichkeiten, Anfragen mit OAuth 2.0 zu autorisieren. In diesem Beispiel werden jedoch die Standardanmeldedaten für Anwendungen verwendet. Auf diese Weise können Sie die Anmeldedaten des gcloud-Tools wiederverwenden. Dieses Tool sollten Sie bereits im Abschnitt Voraussetzungen installiert und autorisiert haben.

const authClient = await google.auth.getClient({
  scopes: [
    'https://www.googleapis.com/auth/cloud-platform',
    'https://www.googleapis.com/auth/compute',
    'https://www.googleapis.com/auth/compute.readonly',
  ],
});

Die API initialisieren

Bevor Sie Anfragen senden können, müssen Sie zuerst eine Instanz des Google Compute Engine-Dienstes initialisieren:

const {google} = require('googleapis');
const compute = google.compute('v1');

Instanzen auflisten

Da Sie jetzt eine autorisierte Instanz haben, können Sie den Client zum Aufrufen der Google Compute Engine-API verwenden.

Um die Instanzen in Ihrem Projekt aufzulisten, verwenden Sie den Aufruf compute.getVMs():

const projectId = await google.auth.getProjectId();
const result = await compute.instances.aggregatedList({
  auth: authClient,
  project: projectId,
});
const vms = result.data;
console.log('VMs:', vms);

Das vollständige Beispiel:

const {google} = require('googleapis');
const compute = google.compute('v1');

async function listVMs() {
  const authClient = await google.auth.getClient({
    scopes: [
      'https://www.googleapis.com/auth/cloud-platform',
      'https://www.googleapis.com/auth/compute',
      'https://www.googleapis.com/auth/compute.readonly',
    ],
  });

  const projectId = await google.auth.getProjectId();
  const result = await compute.instances.aggregatedList({
    auth: authClient,
    project: projectId,
  });
  const vms = result.data;
  console.log('VMs:', vms);
}
Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation