We’re pleased to announce general availability of Cloud Client Libraries for Compute Engine, now available in Java, Go, Python, NodeJS, Ruby, PHP, and C#. These new libraries provide enhanced developer productivity and ease of use by enabling a more idiomatic style for each programming language that we support.

Cloud Client Libraries for Compute Engine wrap the Compute Engine API and provide better language integration, improved security, and user authorization support. The Compute Engine API is built on the standard REST protocol, and the client libraries make it simple and intuitive to use by eliminating the need for creating HTTP requests and parsing JSON responses. You can use standard package managers such as npm and pip to install and manage the libraries.

We’ll continue to support the current Google API Client Libraries for Compute Engine so existing applications that are built with them will continue to work. Cloud Client Libraries and Google API Client Libraries both access the same Compute Engine API. However, we recommend the new Google Cloud Client Libraries for new development projects.

What they look like

Here is an example in Go to list Compute Engine instances in a given region. Visit our documentation for the complete steps to run this sample.

 

import (
        "context"
        "fmt"
        "io"

        compute "cloud.google.com/go/compute/apiv1"
        "google.golang.org/api/iterator"
        computepb "google.golang.org/genproto/googleapis/cloud/compute/v1"
)

// listInstances prints a list of instances created in given project in given zone.
func listInstances(w io.Writer, projectID, zone string) error {
        // projectID := "your_project_id"
        // zone := "europe-central2-b"
        ctx := context.Background()
        instancesClient, err := compute.NewInstancesRESTClient(ctx)
        if err != nil {
                return fmt.Errorf("NewInstancesRESTClient: %v", err)
        }
        defer instancesClient.Close()

        req := &computepb.ListInstancesRequest{
                Project: projectID,
                Zone:    zone,
        }

        it := instancesClient.List(ctx, req)
        fmt.Fprintf(w, "Instances found in zone %s:\n", zone)
        for {
                instance, err := it.Next()
                if err == iterator.Done {
                        break
                }
                if err != nil {
                        return err
                }
                fmt.Fprintf(w, "- %s %s\n", instance.GetName(), instance.GetMachineType())
        }
        return nil
}

 

Try it out

You can learn more about the client libraries for the Compute Engine API in our documentation. We use GitHub to develop the Libraries (Java, Python, Go, PHP, .NET, Node.js, Ruby), and we welcome your feedback on the GitHub project pages. For a complete API reference, including parameters and default values, you can visit the Compute Engine API Reference.

 

By: Wael Manasra (Product Manager) and Emma Haruka Iwao (Developer Advocate)
Source: Google Cloud Blog

Previous How Newsweek Increased Total Revenue Per Visit By 10% With Recommendations AI
Next BigQuery Write API Explained: An Overview Of The Write API