Como usar as bibliotecas de cliente do Node.js

Neste documento, mostramos como usar as bibliotecas de clientes Node.js do Google Cloud Platform para Google Compute Engine com o objetivo de autorizar solicitações e criar uma relação de instâncias de máquinas virtuais do Compute Engine. Neste exemplo, também descrevemos como usar as bibliotecas gcloud-node e google-api-nodejs-client para acessar recursos do Compute Engine dentro e fora da instância de uma máquina virtual. Neste documento, não abordamos como criar e executar aplicativos em uma instância da máquina virtual.

Para ver a lista completa de bibliotecas de clientes disponíveis, inclusive outras bibliotecas do Google e bibliotecas de código aberto de terceiros, consulte a página Bibliotecas de cliente.

Pré-requisitos

Primeiro, prepare o ambiente para o desenvolvimento do Node.js.

Acessar o guia de configuração do Node.js

Projeto do Cloud

Crie um projeto no Console do Google Cloud Platform e ative o faturamento. O projeto contém todos os seus recursos em um único namespace, e o faturamento deve estar ativado para que você possa criar instâncias no seu projeto.

Cloud SDK

Com as ferramentas e bibliotecas do Cloud SDK, crie e gerencie com facilidade recursos no Google Cloud Platform. Consulte as instruções de instalação do Cloud SDK para fazer o download do SDK correspondente à sua plataforma.

Depois de instalar o SDK, autentique e configure seu projeto padrão:

$ gcloud init

Primeiros passos com a biblioteca de cliente do Google Cloud para Node.js

A biblioteca @google-cloud/compute é o meio idiomático recomendado para acessar e interagir com os serviços do Google Cloud. Sempre que possível, use a biblioteca de cliente do Google Cloud em vez da biblioteca de cliente da Google API. Para instalar a biblioteca de cliente do Google Cloud para a Compute Engine API, execute o seguinte comando:

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

O objetivo deste exercício é descrever como autorizar solicitações e executar uma tarefa operacional básica usando a biblioteca de cliente do Node.js no Google Cloud.

Como autorizar solicitações

Neste exemplo, usamos a autorização do OAuth 2.0. Há muitas maneiras de autorizar solicitações usando o OAuth 2.0. Porém, neste exemplo, você usará o Application Default Credentials. Isso permite reutilizar as credenciais da ferramenta gcloud. Instale e autorize essa ferramenta na seção Pré-requisitos.

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

Como inicializar a API

Para fazer solicitações, inicialize uma instância do serviço Google Compute Engine:

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

Como listar instâncias

Agora que você dispõe de uma instância autorizada, você pode usar o cliente para fazer chamadas para a Google Compute Engine API.

Para listar as instâncias em seu projeto, chame 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;
}

Veja o exemplo 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;
}

Primeiros passos com a biblioteca de cliente da Google API para Node.js

A biblioteca google-api-nodejs-client contém a biblioteca Node.js central para acessar as APIs do Google, além da biblioteca de cliente do OAuth 2.0, que é um wrapper de nível básico para REST APIs do Google. Para uma maneira mais idiomática de acessar APIs do Google Cloud Platform, use a biblioteca gcloud-node. Este é o método de instalação mais comum:

$ npm install --save googleapis

O objetivo deste exercício é descrever como autorizar solicitações e executar uma tarefa operacional básica na biblioteca de cliente Node.js da Google API.

Como autorizar solicitações

Neste exemplo, usamos a autorização do OAuth 2.0. Há várias maneiras de autorizar solicitações usando o OAuth 2.0, mas, nesse exemplo, você usará o Application Default Credentials. Isso permite reutilizar as credenciais da ferramenta gcloud. Instale e autorize essa ferramenta na seção Pré-requisitos.

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

Como inicializar a API

Para fazer solicitações, inicialize uma instância do serviço Google Compute Engine:

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

Como listar instâncias

Agora que há uma instância autorizada, use o cliente para chamar a Google Compute Engine API.

Para listar as instâncias em seu projeto, chame 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);

Veja o exemplo 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);
}
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine