Usa las bibliotecas cliente de Node.js

En este documento, se demuestra cómo usar las bibliotecas cliente de Node.js de Google Cloud Platform para que Compute Engine autorice solicitudes y enumere instancias de máquina virtual 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 sobre 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 con facilidad 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 es la forma idiomática recomendada de acceder y, además, interactuar con los servicios de Google Cloud. Usa 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 este ejemplo, se usa la autorización de OAuth 2.0. Existen muchas formas de autorizar solicitudes con OAuth 2.0, pero en este ejemplo usarás las credenciales predeterminadas de la aplicación. Esto te permite volver a usar las credenciales desde 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 Compute Engine:

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

Genera una lista de instancias

Ahora que tiene una instancia autorizada, puede usar el cliente para realizar llamadas a la API de 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;
}

Este es el ejemplo completo:

'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 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 este ejemplo, 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 volver a usar las credenciales desde 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 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 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);

Este es el ejemplo completo:

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 sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Compute Engine