Node.js 클라이언트 라이브러리 사용

이 문서에서는 Compute Engine용 Google Cloud Platform Node.js 클라이언트 라이브러리를 사용하여 요청을 승인하고 Compute Engine 가상 머신 인스턴스를 나열하는 방법을 설명합니다. 또한 이 샘플에서는 gcloud-node 및 google-api-nodejs-client 라이브러리를 사용하여 가상 머신 인스턴스 외부 및 내부에서 Compute Engine 리소스에 액세스하는 방법을 설명합니다. 이 문서에서는 가상 머신 인스턴스에서 애플리케이션을 빌드하고 실행하는 방법을 설명하지 않습니다.

다른 Google 클라이언트 라이브러리 및 타사 오픈소스 라이브러리를 포함하여 사용 가능한 전체 클라이언트 라이브러리 목록은 클라이언트 라이브러리 페이지를 참조하세요.

기본 요건

우선 Node.js 개발 환경을 준비합니다.

Node.js 설정 가이드로 이동

클라우드 프로젝트

Google Cloud Platform Console에서 프로젝트를 만들고 결제를 사용 설정합니다. 프로젝트에는 단일 네임스페이스 아래의 모든 리소스가 포함되고, 프로젝트에서 인스턴스를 만들기 위해서는 청구가 필요합니다.

Cloud SDK

Cloud SDK에는 Google Cloud Platform에서 리소스를 쉽게 만들고 관리할 수 있는 도구와 라이브러리가 있습니다. 플랫폼에 맞는 SDK를 가져오려면 Cloud SDK 설치 지침을 참조하세요.

SDK를 설치한 후, 기본 프로젝트를 인증하고 설정합니다.

$ gcloud init

Node.js용 Google Cloud 클라이언트 라이브러리로 시작하기

@google-cloud/compute 라이브러리는 Google Cloud 서비스에 액세스하고 상호작용하는 일반적인 권장 방법입니다. 가능하면 Google API 클라이언트 라이브러리 대신 Google Cloud 클라이언트 라이브러리를 사용합니다. Compute Engine API에 사용하기 위한 Google Cloud 클라이언트 라이브러리를 설치하려면 다음 명령어를 실행합니다.

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

이 연습의 목적은 Google Cloud Node.js 클라이언트 라이브러리를 사용하여 기본적인 작업을 수행하고 요청을 인증하는 방법을 설명하기 위한 것입니다.

요청 승인

이 샘플에서는 OAuth 2.0 승인을 사용합니다. OAuth 2.0을 사용하여 요청을 인증하는 방법에는 여러 가지가 있지만 여기에서는 한 가지 예시로 애플리케이션 기본 사용자 인증 정보를 사용합니다. 이렇게 하면 gcloud 도구에서 사용자 인증 정보를 다시 사용할 수 있습니다. 이를 위해서는 기본 요건 섹션에서 이 도구를 설치하고 인증해야 합니다.

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

API 설치

요청을 수행하기 전에 먼저 Compute Engine 서비스의 인스턴스를 초기화해야 합니다.

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

인스턴스 나열

이제 인스턴스가 승인되었으므로 클라이언트를 사용하여 Compute Engine API를 호출할 수 있습니다.

프로젝트에 있는 인스턴스를 나열하려면 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;
}

전체 예시:

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

Node.js용 Google API 클라이언트 라이브러리로 시작하기

google-api-nodejs-client 라이브러리에는 Google API에 액세스하는 데 필요한 핵심 Node.js 라이브러리와 OAuth 2.0 클라이언트 라이브러리가 있습니다. 이 라이브러리는 Google REST API를 위한 하위 수준 래퍼입니다. Google Cloud Platform API에 액세스하는 보다 일반적인 방법으로, gcloud-node 라이브러리를 사용합니다. 일반적인 설치는 간단합니다.

$ npm install --save googleapis

이 연습의 목적은 Google API Node.js 클라이언트 라이브러리를 사용하여 기본적인 작업을 수행하고 요청을 인증하는 방법을 설명하기 위한 것입니다.

요청 승인

이 샘플에서는 OAuth 2.0 승인을 사용합니다. OAuth 2.0을 사용하여 요청을 인증하는 방법에는 여러 가지가 있지만 여기에서는 한 가지 예로 애플리케이션 기본 사용자 인증 정보를 사용합니다. 이렇게 하면 gcloud 도구에서 사용자 인증 정보를 다시 사용할 수 있습니다. 이를 위해서는 기본 요건 섹션에서 이 도구를 설치하고 인증해야 합니다.

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

API 설치

요청을 수행하기 전에 먼저 Compute Engine 서비스의 인스턴스를 초기화해야 합니다.

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

인스턴스 나열

이제 인스턴스가 승인되었으므로 클라이언트를 사용하여 Compute Engine API를 호출할 수 있습니다.

프로젝트에 있는 인스턴스를 나열하려면 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);

전체 예시:

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);
}
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Compute Engine 문서