Usa las bibliotecas cliente de Node.js

En este documento, se muestra cómo usar las bibliotecas cliente de Node.js de Google Cloud Platform para Google Compute Engine a fin de autorizar solicitudes y enumerar instancias de máquinas virtuales de Compute Engine. En este ejemplo, también se describe cómo usar las bibliotecas gcloud-node y google-api-nodejs-client para acceder a los recursos de Compute Engine desde fuera y dentro de una instancia de máquina virtual. En este documento, no se aborda cómo compilar y ejecutar aplicaciones dentro de una instancia de máquina virtual.

Para obtener una lista completa de las bibliotecas cliente disponibles, incluidas otras bibliotecas cliente de Google y bibliotecas de código abierto de terceros, consulta la página Bibliotecas cliente.

Requisitos previos

Primero, prepara tu entorno para el desarrollo en Node.js.

Ir a la guía de configuración de Node.js

Proyecto de Cloud

Crea un proyecto en Google Cloud Platform Console y habilita la facturación. El proyecto contiene todos tus recursos en un solo espacio de nombres y se requiere facturación para crear cualquier instancia en tu proyecto.

SDK de Cloud

El SDK de Cloud contiene herramientas y bibliotecas que te permiten crear y administrar recursos fácilmente en Google Cloud Platform. Consulta las instrucciones de instalación del SDK de Cloud a fin de obtener el SDK para tu plataforma.

Después de instalar el SDK, autentica y configura tu proyecto predeterminado:

$ gcloud init

Comienza con la biblioteca cliente de Google Cloud para Node.js

La biblioteca @google-cloud/compute se presenta como la forma idiomática recomendada de acceder y, luego, interactuar con los servicios de Google Cloud. Utiliza la biblioteca cliente de Google Cloud en lugar de la biblioteca cliente de las API de Google siempre que sea posible. Si quieres instalar la biblioteca cliente de Google Cloud para la API de Compute Engine, ejecuta el siguiente comando:

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

El propósito de este ejercicio es describir cómo autorizar solicitudes y cómo realizar una tarea operativa básica con la biblioteca cliente de Node.js de Google Cloud.

Autoriza solicitudes

En esta muestra, se usa la autorización de OAuth 2.0. Existen muchas formas de autorizar solicitudes con OAuth 2.0, pero en esta muestra usarás las credenciales predeterminadas de la aplicación. Esto te permite reutilizar las credenciales de la herramienta de gcloud. Debes instalar y autorizar esta herramienta en la sección Requisitos previos.

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

Inicializa la API

Antes de poder realizar solicitudes, primero debes inicializar una instancia del servicio de Google Compute Engine:

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

Genera una lista de instancias

Ahora que tienes una instancia autorizada, puedes usar el cliente para realizar llamadas a la API de Google Compute Engine.

Para enumerar las instancias en tu proyecto, llama a 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;
}

El ejemplo completo es el siguiente:

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

Comienza con la biblioteca cliente de la API de Google para Node.js

La biblioteca google-api-nodejs-client contiene la biblioteca central de Node.js para acceder a las API de Google y también contiene la biblioteca cliente de OAuth 2.0. Esta biblioteca es un wrapper de bajo nivel para las API de REST de Google. A fin de obtener una forma más idiomática de acceder a las API de Google Cloud Platform, usa la biblioteca gcloud-node. La instalación típica se logra de la siguiente forma:

$ npm install --save googleapis

El propósito de este ejercicio es describir cómo autorizar solicitudes y cómo realizar una tarea operativa básica con la biblioteca cliente de Node.js de la API de Google.

Autoriza solicitudes

En esta muestra, se usa la autorización de OAuth 2.0. Existen muchas formas de autorizar solicitudes con OAuth 2.0, pero en el ejemplo usarás las credenciales predeterminadas de la aplicación. Esto te permite reutilizar las credenciales de la herramienta de gcloud. Debes instalar y autorizar esta herramienta en la sección Requisitos previos.

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

Inicializa la API

Antes de poder realizar solicitudes, primero debes inicializar una instancia del servicio de Google Compute Engine:

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

Genera una lista de instancias

Ahora que tienes una instancia autorizada, puedes usar el cliente para realizar llamadas a la API de Google Compute Engine.

Para enumerar las instancias en tu proyecto, llama a 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);

El ejemplo completo es el siguiente:

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);
}
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Compute Engine