Librerie client di Compute Engine

Questa pagina mostra come iniziare a utilizzare le librerie client di Cloud per l'API Compute Engine. Le librerie client semplificano l'accesso le API Google Cloud da un linguaggio supportato. Sebbene sia possibile utilizzare API Google Cloud direttamente effettuando richieste non elaborate al server, al client le librerie offrono semplificazioni che riducono significativamente la quantità di codice che devi scrivere.

Scopri di più sulle librerie client di Cloud e le librerie client precedenti delle API di Google Spiegazione delle librerie client.


Per seguire le indicazioni dettagliate per questa attività direttamente nella console Google Cloud, fai clic su Procedura guidata:

Procedura guidata


installa la libreria client

C++

Segui le Quickstart.

C#

Installa il Google.Cloud.Compute.V1 un pacchetto da NuGet.

Per ulteriori informazioni, consulta la sezione Configurazione di un ambiente di sviluppo C#.

Go

go get cloud.google.com/go/compute/apiv1

Per saperne di più, consulta la pagina Configurazione di un ambiente di sviluppo Go.

Java

If you are using Maven, add the following to your pom.xml file. For more information about BOMs, see The Google Cloud Platform Libraries BOM.

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.google.cloud</groupId>
      <artifactId>libraries-bom</artifactId>
      <version>26.50.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>com.google.cloud</groupId>
    <artifactId>google-cloud-compute</artifactId>
  </dependency>
</dependencies>

If you are using Gradle, add the following to your dependencies:

implementation 'com.google.cloud:google-cloud-compute:1.63.0'

If you are using sbt, add the following to your dependencies:

libraryDependencies += "com.google.cloud" % "google-cloud-compute" % "1.63.0"

La versione precedente delle librerie client di Cloud per Java per Compute Engine è disponibile nella versione 0.120.x o precedenti nei Artefatto Maven. Le versioni 0.120.x e precedenti di questa libreria sono incompatibile con le versioni successive.

Per ulteriori informazioni, consulta la sezione Configurazione di un ambiente di sviluppo Java.

Node.js

npm install @google-cloud/compute

La versione precedente delle librerie client Cloud per Node.js per Compute Engine è disponibile come versione 2.5.x o precedente nel pacchetto npm. Le versioni 2.5.x e precedenti di questa libreria non sono compatibili con versioni successive.

Per ulteriori informazioni, consulta la sezione Configurare un ambiente di sviluppo Node.js.

PHP

composer require google/cloud-compute

Per ulteriori informazioni, consulta Utilizzo di PHP su Google Cloud.

Python

pip install --upgrade google-cloud-compute

Per ulteriori informazioni, consulta la sezione Configurazione di un ambiente di sviluppo Python.

Ruby

gem install google-cloud-compute-v1

Per ulteriori informazioni, consulta la sezione Configurare un ambiente di sviluppo Ruby.

Configura l'autenticazione

Per autenticare le chiamate alle API Google Cloud, le librerie client supportano Credenziali predefinite dell'applicazione (ADC); le librerie cercano le credenziali in una serie di posizioni definite e le utilizzano per autenticare le richieste all'API. Con ADC, puoi le credenziali disponibili per l'applicazione in diversi ambienti, ad esempio sviluppo o produzione, senza dover modificare il codice dell'applicazione.

Per gli ambienti di produzione, il modo in cui configuri ADC dipende dal servizio e contesto. Per ulteriori informazioni, vedi Configurare le credenziali predefinite dell'applicazione.

Per un ambiente di sviluppo locale, puoi configurare ADC con le credenziali associati al tuo Account Google:

  1. Install the Google Cloud CLI, then initialize it by running the following command:

    gcloud init
  2. If you're using a local shell, then create local authentication credentials for your user account:

    gcloud auth application-default login

    You don't need to do this if you're using Cloud Shell.

    Viene visualizzata una schermata di accesso. Dopo aver eseguito l'accesso, le tue credenziali vengono memorizzate nella delle credenziali locali utilizzato da ADC.

Utilizzare la libreria client

L'esempio seguente mostra come utilizzare la libreria client per elencare le istanze in un una determinata zona. Per altri esempi, consulta Utilizzo delle librerie client.

C#


using Google.Cloud.Compute.V1;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

public class ListZoneInstancesAsyncSample
{
    public async Task<IList<Instance>> ListZoneInstancesAsync(
        // TODO(developer): Set your own default values for these parameters or pass different values when calling this method.
        string projectId = "your-project-id", 
        string zone = "us-central1-a")
    {
        // Initialize client that will be used to send requests. This client only needs to be created
        // once, and can be reused for multiple requests.
        InstancesClient client = await InstancesClient.CreateAsync();
        IList<Instance> allInstances = new List<Instance>();

        // Make the request to list all VM instances in the given zone in the specified project.
        await foreach(var instance in client.ListAsync(projectId, zone))
        {
            // The result is an Instance collection.
            Console.WriteLine($"Instance: {instance.Name}");
            allInstances.Add(instance);
        }

        return allInstances;
    }
}

Go

import (
	"context"
	"fmt"
	"io"

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

// 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: %w", 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
}

Java


import com.google.cloud.compute.v1.Instance;
import com.google.cloud.compute.v1.InstancesClient;
import java.io.IOException;

public class ListInstance {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample
    String project = "your-project-id";
    String zone = "zone-name";
    listInstances(project, zone);
  }

  // List all instances in the given zone in the specified project ID.
  public static void listInstances(String project, String zone) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the `instancesClient.close()` method on the client to 
    // safely clean up any remaining background resources.
    try (InstancesClient instancesClient = InstancesClient.create()) {
      // Set the project and zone to retrieve instances present in the zone.
      System.out.printf("Listing instances from %s in %s:", project, zone);
      for (Instance zoneInstance : instancesClient.list(project, zone).iterateAll()) {
        System.out.println(zoneInstance.getName());
      }
      System.out.println("####### Listing instances complete #######");
    }
  }
}

Node.js

/**
 * TODO(developer): Uncomment and replace these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const zone = 'europe-central2-b'

const compute = require('@google-cloud/compute');

// List all instances in the given zone in the specified project.
async function listInstances() {
  const instancesClient = new compute.InstancesClient();

  const [instanceList] = await instancesClient.list({
    project: projectId,
    zone,
  });

  console.log(`Instances found in zone ${zone}:`);

  for (const instance of instanceList) {
    console.log(` - ${instance.name} (${instance.machineType})`);
  }
}

listInstances();

PHP

use Google\Cloud\Compute\V1\Client\InstancesClient;
use Google\Cloud\Compute\V1\ListInstancesRequest;

/**
 * List all instances for a particular Cloud project and zone.
 *
 * @param string $projectId Your Google Cloud project ID.
 * @param string $zone Zone to list instances for (like "us-central1-a").
 *
 * @throws \Google\ApiCore\ApiException if the remote call fails.
 */
function list_instances(string $projectId, string $zone)
{
    // List Compute Engine instances using InstancesClient.
    $instancesClient = new InstancesClient();
    $request = (new ListInstancesRequest())
        ->setProject($projectId)
        ->setZone($zone);
    $instancesList = $instancesClient->list($request);

    printf('Instances for %s (%s)' . PHP_EOL, $projectId, $zone);
    foreach ($instancesList as $instance) {
        printf(' - %s' . PHP_EOL, $instance->getName());
    }
}

Python

from __future__ import annotations

from collections.abc import Iterable

from google.cloud import compute_v1


def list_instances(project_id: str, zone: str) -> Iterable[compute_v1.Instance]:
    """
    List all instances in the given zone in the specified project.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        zone: name of the zone you want to use. For example: us-west3-b
    Returns:
        An iterable collection of Instance objects.
    """
    instance_client = compute_v1.InstancesClient()
    instance_list = instance_client.list(project=project_id, zone=zone)

    print(f"Instances found in zone {zone}:")
    for instance in instance_list:
        print(f" - {instance.name} ({instance.machine_type})")

    return instance_list

Ruby


require "google/cloud/compute/v1"

# Lists all instances in the given zone in the specified project.
#
# @param [String] project project ID or project number of the Cloud project you want to use.
# @param [String] zone name of the zone you want to use. For example: "us-west3-b"
# @return [Array<::Google::Cloud::Compute::V1::Instance>] Array of instances.
def list_instances project:, zone:
  # Initialize client that will be used to send requests. This client only needs to be created
  # once, and can be reused for multiple requests.
  client = ::Google::Cloud::Compute::V1::Instances::Rest::Client.new

  # Send the request to list all VM instances in the given zone in the specified project.
  instance_list = client.list project: project, zone: zone

  puts "Instances found in zone #{zone}:"
  instances = []
  instance_list.each do |instance|
    puts " - #{instance.name} (#{instance.machine_type})"
    instances << instance
  end
  instances
end

Risorse aggiuntive

C++

Il seguente elenco contiene link ad altre risorse correlate agli libreria client per C++:

C#

Il seguente elenco contiene link ad altre risorse correlate alla libreria client per C#:

Go

Il seguente elenco contiene link ad altre risorse correlate agli libreria client per Go:

Java

Il seguente elenco contiene link ad altre risorse correlate agli libreria client per Java:

Node.js

Il seguente elenco contiene link ad altre risorse correlate agli libreria client per Node.js:

PHP

Il seguente elenco contiene link ad altre risorse correlate agli libreria client per PHP:

Python

Il seguente elenco contiene link ad altre risorse correlate agli libreria client per Python:

Ruby

Il seguente elenco contiene link ad altre risorse correlate agli libreria client per Ruby:

Librerie client meno recenti

Librerie client di Cloud utilizzano il nostro modello di libreria client più recente e sono l'opzione consigliata per accedere le API Cloud in modo programmatico.

Per i casi in cui non puoi utilizzare le librerie client di Cloud, di seguito Librerie client delle API di Google sono disponibili:

Lingua Raccolta Risorse
Vai Libreria client Go dell'API di Google Documentazione
Java Libreria client Java dell'API di Google Documentazione
JavaScript Libreria client JavaScript dell'API di Google Documentazione
.NET Libreria client .NET delle API di Google Documentazione
Node.js Libreria client Node.js dell'API di Google Documentazione
Objective-C Libreria client dell'API di Google per Objective-C Documentazione
PHP Libreria client PHP dell'API di Google Documentazione
Python Libreria client Python dell'API di Google Documentazione
Ruby Libreria client Ruby per le API di Google Documentazione
Dart Libreria client Dart dell'API di Google Documentazione

Librerie client dell'API Compute Engine di terze parti

libcloud

libcloud è una libreria Python utilizzata per interagire con più provider di servizi cloud tramite un'unica API unificata.

Il progetto API Apache libcloud riceve assistenza e aggiornamenti per Compute Engine da luglio 2013. Supporta un ampio set di Funzionalità di Compute Engine, tra cui istanze, dischi, reti e bilanciatori del carico e bilanciatori del carico. La demo introduttiva fornisce un esempio di codice di utilizzo libcloud e Compute Engine insieme.

Jcloud

jclouds è una libreria open source che consente di utilizzare Java e Clojure su più cloud provider.

L'API jclouds Cloud supporta Compute Engine e ti consente di gestire di risorse come macchine virtuali, dischi e reti. A partire dalla versione 1.9, Compute Engine è stato promosso al core jclouds.

fog.io

fog.io è una libreria Ruby open source che consente interagire con più servizi cloud tramite un'unica API.

L'API cloud fog.io supporta Compute Engine dalla versione 1.11.0 di maggio 2013. Supporta operazioni sulle istanze come creazione ed eliminazione, nonché operazioni di gestione per altre risorse come dischi, reti e bilanciatori del carico.