Utiliser les bibliothèques clientes Node.js

Ce document explique comment utiliser les bibliothèques clientes Node.js de Google Cloud Platform pour Google Compute Engine pour autoriser des requêtes et répertorier les instances de machines virtuelles Compute Engine. Cet exemple décrit également comment utiliser les bibliothèques gcloud-node et google-api-nodejs-client pour accéder aux ressources Compute Engine aussi bien à l'intérieur qu'à l'extérieur d'une instance de machine virtuelle. Ce document n'indique pas comment créer et exécuter des applications au sein d'une instance de machine virtuelle.

Une liste complète des bibliothèques clientes disponibles, notamment les autres bibliothèques clientes Google et les bibliothèques Open Source tierces, est disponible à la page Bibliothèques clientes.

Prérequis

Pour commencer, préparez votre environnement pour le développement Node.js.

Accéder au guide de configuration Node.js

Projet Cloud

Créez un projet dans la console Google Cloud Platform et activez la facturation. Le projet héberge toutes vos ressources dans un espace de noms unique et la facturation est requise pour créer des instances au sein de votre projet.

SDK Cloud

Le SDK Cloud contient des outils et des bibliothèques qui vous permettent de créer et gérer facilement des ressources sur Google Cloud Platform. Veuillez vous référer aux instructions d'installation du SDK Cloud pour obtenir le SDK correspondant à votre plate-forme.

Une fois le SDK installé, authentifiez-vous et définissez votre projet par défaut :

$ gcloud init

Guide de démarrage de la bibliothèque cliente Google Cloud pour Node.js

La bibliothèque @google-cloud/compute est la solution naturelle recommandée pour accéder aux services Google Cloud et interagir avec ceux-ci. Dans la mesure du possible, utilisez la bibliothèque cliente Google Cloud plutôt que la bibliothèque cliente de l'API Google. Pour installer la bibliothèque cliente Google Cloud pour l'API Compute Engine, exécutez la commande suivante :

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

Le but de cet exercice est de décrire comment autoriser des requêtes et comment exécuter une tâche opérationnelle élémentaire avec la bibliothèque cliente Node.js de Google Cloud.

Autoriser des requêtes

Cet exemple utilise le protocole d'autorisation OAuth 2.0. Il existe de nombreuses manières d'autoriser des requêtes à l'aide de OAuth 2.0, mais dans le cadre de cet exemple, vous utiliserez les identifiants par défaut de l'application. Vous pouvez ainsi réutiliser les informations d'identification de l'outil gcloud. Vous devez avoir installé et autorisé cet outil dans la section Prérequis.

// 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');

Initialiser l'API

Pour générer des requêtes, vous devez d'abord initialiser une instance du service Google Compute Engine :

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

Répertorier les instances

Maintenant que vous disposez d'une instance autorisée, vous pouvez utiliser le client pour effectuer des appels vers l'API Google Compute Engine.

Pour répertorier les instances de votre projet, appelez 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;
}

L'exemple complet :

'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;
}

Guide de démarrage de la bibliothèque cliente des API Google pour Node.js

La bibliothèque google-api-nodejs-client contient la bibliothèque Node.js principale permettant d'accéder aux API Google, ainsi que la bibliothèque cliente OAuth 2.0. Cette bibliothèque est un wrapper de bas niveau pour les API REST de Google. Une solution plus naturelle pour accéder aux API de la plateforme Google Cloud est d'utiliser la bibliothèque gcloud-node. Typiquement, l'installation s'effectue avec la simple commande :

$ npm install --save googleapis

Le but de cet exercice est de décrire comment autoriser des requêtes et comment exécuter une tâche opérationnelle élémentaire avec la bibliothèque cliente Node.js des API Google.

Autoriser des requêtes

Cet exemple utilise le protocole d'autorisation OAuth 2.0. Il existe de nombreuses manières d'autoriser des requêtes à l'aide de OAuth 2.0, mais dans le cadre de cet exemple, vous utiliserez les identifiants par défaut de l'application. Vous pouvez ainsi réutiliser les informations d'identification de l'outil gcloud. Vous devez avoir installé et autorisé cet outil dans la section Prérequis.

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',
  ],
});

Initialiser l'API

Pour générer des requêtes, vous devez d'abord initialiser une instance du service Google Compute Engine :

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

Répertorier les instances

Maintenant que vous disposez d'une instance autorisée, vous pouvez utiliser le client pour effectuer des appels vers l'API Google Compute Engine.

Pour répertorier les instances de votre projet, appelez 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);

L'exemple complet :

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);
}
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Documentation Compute Engine