What is @google-cloud/compute?
@google-cloud/compute is an npm package that provides a client library for interacting with Google Cloud Compute Engine. It allows developers to manage virtual machine instances, networks, firewalls, and other resources on Google Cloud Platform (GCP).
What are @google-cloud/compute's main functionalities?
Create a VM instance
This code sample demonstrates how to create a new VM instance in Google Cloud Compute Engine using the @google-cloud/compute package.
const {InstancesClient} = require('@google-cloud/compute');
const compute = new InstancesClient();
async function createInstance() {
const [response] = await compute.insert({
project: 'your-project-id',
zone: 'us-central1-a',
instanceResource: {
name: 'instance-name',
machineType: 'zones/us-central1-a/machineTypes/n1-standard-1',
disks: [
{
boot: true,
initializeParams: {
sourceImage: 'projects/debian-cloud/global/images/family/debian-10'
}
}
],
networkInterfaces: [
{
network: 'global/networks/default'
}
]
}
});
console.log('Instance created:', response);
}
createInstance().catch(console.error);
List VM instances
This code sample demonstrates how to list all VM instances in a specific zone using the @google-cloud/compute package.
const {InstancesClient} = require('@google-cloud/compute');
const compute = new InstancesClient();
async function listInstances() {
const [instances] = await compute.list({
project: 'your-project-id',
zone: 'us-central1-a'
});
console.log('Instances:', instances);
}
listInstances().catch(console.error);
Delete a VM instance
This code sample demonstrates how to delete a VM instance in Google Cloud Compute Engine using the @google-cloud/compute package.
const {InstancesClient} = require('@google-cloud/compute');
const compute = new InstancesClient();
async function deleteInstance() {
const [response] = await compute.delete({
project: 'your-project-id',
zone: 'us-central1-a',
instance: 'instance-name'
});
console.log('Instance deleted:', response);
}
deleteInstance().catch(console.error);
Other packages similar to @google-cloud/compute
aws-sdk
The aws-sdk package is the official AWS SDK for JavaScript, which allows developers to interact with various AWS services, including EC2 for managing virtual machine instances. It provides similar functionalities to @google-cloud/compute but for Amazon Web Services.
azure-arm-compute
The azure-arm-compute package is the Azure SDK for managing compute resources in Microsoft Azure. It provides functionalities to manage virtual machines, disks, and other compute resources on Azure, similar to what @google-cloud/compute offers for Google Cloud Platform.


Node.js idiomatic client for Compute Engine.
Compute Engine lets you create and run virtual machines on Google infrastructure. Compute Engine offers scale, performance, and value that allows you to easily launch large compute clusters on Google's infrastructure. There are no upfront investments and you can run thousands of virtual CPUs on a system that has been designed to be fast, and to offer strong consistency of performance.
Read more about the client libraries for Cloud APIs, including the older
Google APIs Client Libraries, in Client Libraries Explained.
Table of contents:
Quickstart
Before you begin
-
Select or create a Cloud Platform project.
Go to the projects page
-
Enable billing for your project.
Enable billing
-
Enable the Google Compute Engine API.
Enable the API
-
Set up authentication with a service account so you can access the
API from your local workstation.
Installing the client library
npm install --save @google-cloud/compute
Using the client library
const Compute = require('@google-cloud/compute');
const compute = new Compute();
const zone = compute.zone('us-central1-a');
const name = 'ubuntu-http';
zone
.createVM(name, {os: 'ubuntu'})
.then(data => {
const vm = data[0];
const operation = data[1];
return operation.promise();
})
.then(() => {
})
.catch(err => {
console.error('ERROR:', err);
});
Samples
Samples are in the samples/
directory. The samples' README.md
has instructions for running the samples.
Sample | Source Code | Try it |
---|
Create Virtual Machine with Apache and Custom Homepage | source code |  |
List Virtual Machines | source code |  |
The Compute Engine Node.js Client API Reference documentation
also contains samples.
Versioning
This library follows Semantic Versioning.
This library is considered to be in alpha. This means it is still a
work-in-progress and under active development. Any release is subject to
backwards-incompatible changes at any time.
More Information: Google Cloud Platform Launch Stages
Contributing
Contributions welcome! See the Contributing Guide.
License
Apache Version 2.0
See LICENSE