Borra una instancia de Compute Engine
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
En este documento, se explica cómo borrar una instancia de Compute Engine. Para obtener más información sobre el ciclo de vida de una instancia, consulta Ciclo de vida de la instancia de Compute Engine.
Si ya no necesitas una instancia, bórrala para dejar de generar cargos por la instancia y sus recursos adjuntos.
Antes de comenzar
Si aún no lo hiciste, configura la autenticación.
La autenticación verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and
APIs, you don't need to set up authentication.
gcloud
Instala Google Cloud CLI.
Después de la instalación,
inicializa Google Cloud CLI con el siguiente comando:
Para usar las muestras de .NET incluidas en esta página en un entorno
de desarrollo local, instala e inicializa la gcloud CLI y, luego,
configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para usar las muestras de Go incluidas en esta página en un entorno
de desarrollo local, instala e inicializa la gcloud CLI y, luego,
configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para usar las muestras de Java incluidas en esta página en un entorno
de desarrollo local, instala e inicializa la gcloud CLI y, luego,
configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para usar las muestras de Node.js incluidas en esta página en un entorno
de desarrollo local, instala e inicializa la gcloud CLI y, luego,
configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para usar las muestras de PHP incluidas en esta página en un entorno
de desarrollo local, instala e inicializa la gcloud CLI y, luego,
configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para usar las muestras de Python incluidas en esta página en un entorno
de desarrollo local, instala e inicializa la gcloud CLI y, luego,
configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para usar las muestras de Ruby incluidas en esta página en un entorno
de desarrollo local, instala e inicializa la gcloud CLI y, luego,
configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
Para usar las muestras de la API de REST incluidas en esta página en un entorno de desarrollo local,
debes usar las credenciales que proporciones a la gcloud CLI.
Para obtener más información, consulta
Autentícate para usar REST
en la documentación de autenticación de Google Cloud .
Este rol predefinido contiene
los permisos necesarios para borrar una instancia de procesamiento. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para borrar una instancia de procesamiento:
compute.instances.delete
en la instancia
Para forzar la eliminación de un disco conectado, usa el comando compute.disks.delete en el disco.
En algunos casos, antes de borrar una instancia de procesamiento, es posible que desees conservar uno de sus recursos adjuntos. Para conservar los recursos adjuntos, haz lo siguiente:
Para conservar una GPU conectada a una instancia de máquina virtual (VM) N1, quítala de la VM.
Para conservar un disco adjunto, realiza una de las siguientes acciones:
Si habilitaste el cierre ordenado en la instancia, puedes borrarla sin cerrarla de forma ordenada o finalizar un cierre ordenado en curso con la consola, gcloud CLI o la API de REST. Google Cloud
Para borrar varias instancias de forma simultánea, usa la Google Cloud consola o, en el caso de las instancias ubicadas en la misma zona, gcloud CLI.
Para borrar una o más instancias y todos los recursos adjuntos, selecciona una de las siguientes opciones:
Console
En la consola de Google Cloud , ve a la página Instancias de VM.
Opcional: Para borrar las instancias sin cerrarlas de forma ordenada o finalizar un cierre ordenado en curso, selecciona la casilla de verificación Omitir el cierre ordenado (si corresponde).
Reemplaza DELETE_DISK_TYPE por uno de los siguientes valores:
Para borrar el almacenamiento persistente conectado de arranque y no arranque, haz lo siguiente: all
Para borrar solo el almacenamiento persistente de arranque conectado, usa el siguiente comando: boot
Para borrar solo el almacenamiento persistente que no es de inicio, haz lo siguiente: data
Si habilitaste el cierre ordenado en una o más instancias, puedes borrarlas sin cerrarlas ordenadamente o finalizar manualmente un cierre ordenado en curso. Para ello, usa el comando gcloud beta compute instances delete con la marca --no-graceful-shutdown:
usingGoogle.Cloud.Compute.V1;usingSystem.Threading.Tasks;publicclassDeleteInstanceAsyncSample{publicasyncTaskDeleteInstanceAsync(// TODO(developer): Set your own default values for these parameters or pass different values when calling this method.stringprojectId="your-project-id",stringzone="us-central1-a",stringmachineName="test-machine"){// Initialize client that will be used to send requests. This client only needs to be created// once, and can be reused for multiple requests.InstancesClientclient=awaitInstancesClient.CreateAsync();// Make the request to delete a VM instance.varinstanceDeletion=awaitclient.DeleteAsync(projectId,zone,machineName);// Wait for the operation to complete using client-side polling.awaitinstanceDeletion.PollUntilCompletedAsync();}}
Go
import("context""fmt""io"compute"cloud.google.com/go/compute/apiv1"computepb"cloud.google.com/go/compute/apiv1/computepb")// deleteInstance sends a delete request to the Compute Engine API and waits for it to complete.funcdeleteInstance(wio.Writer,projectID,zone,instanceNamestring)error{// projectID := "your_project_id"// zone := "europe-central2-b"// instanceName := "your_instance_name"ctx:=context.Background()instancesClient,err:=compute.NewInstancesRESTClient(ctx)iferr!=nil{returnfmt.Errorf("NewInstancesRESTClient: %w",err)}deferinstancesClient.Close()req:=&computepb.DeleteInstanceRequest{Project:projectID,Zone:zone,Instance:instanceName,}op,err:=instancesClient.Delete(ctx,req)iferr!=nil{returnfmt.Errorf("unable to delete instance: %w",err)}iferr=op.Wait(ctx);err!=nil{returnfmt.Errorf("unable to wait for the operation: %w",err)}fmt.Fprintf(w,"Instance deleted\n")returnnil}
Java
importcom.google.api.gax.longrunning.OperationFuture;importcom.google.cloud.compute.v1.DeleteInstanceRequest;importcom.google.cloud.compute.v1.InstancesClient;importcom.google.cloud.compute.v1.Operation;importjava.io.IOException;importjava.util.concurrent.ExecutionException;importjava.util.concurrent.TimeUnit;importjava.util.concurrent.TimeoutException;publicclassDeleteInstance{publicstaticvoidmain(String[]args)throwsIOException,InterruptedException,ExecutionException,TimeoutException{// TODO(developer): Replace these variables before running the sample.Stringproject="your-project-id";Stringzone="zone-name";StringinstanceName="instance-name";deleteInstance(project,zone,instanceName);}// Delete the instance specified by `instanceName`// if it's present in the given project and zone.publicstaticvoiddeleteInstance(Stringproject,Stringzone,StringinstanceName)throwsIOException,InterruptedException,ExecutionException,TimeoutException{// 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(InstancesClientinstancesClient=InstancesClient.create()){System.out.printf("Deleting instance: %s ",instanceName);// Describe which instance is to be deleted.DeleteInstanceRequestdeleteInstanceRequest=DeleteInstanceRequest.newBuilder().setProject(project).setZone(zone).setInstance(instanceName).build();OperationFuture<Operation,Operation>operation=instancesClient.deleteAsync(deleteInstanceRequest);// Wait for the operation to complete.Operationresponse=operation.get(3,TimeUnit.MINUTES);if(response.hasError()){System.out.println("Instance deletion failed ! ! "+response);return;}System.out.println("Operation Status: "+response.getStatus());}}}
Node.js
/** * TODO(developer): Uncomment these variables before running the sample. */// const projectId = 'YOUR_PROJECT_ID';// const zone = 'europe-central2-b'// const instanceName = 'YOUR_INSTANCE_NAME';constcompute=require('@google-cloud/compute');// Delete the instance specified by `instanceName` if it's present in the given project and zone.asyncfunctiondeleteInstance(){constinstancesClient=newcompute.InstancesClient();console.log(`Deleting ${instanceName} from ${zone}...`);const[response]=awaitinstancesClient.delete({project:projectId,zone,instance:instanceName,});letoperation=response.latestResponse;constoperationsClient=newcompute.ZoneOperationsClient();// Wait for the delete operation to complete.while(operation.status!=='DONE'){[operation]=awaitoperationsClient.wait({operation:operation.name,project:projectId,zone:operation.zone.split('/').pop(),});}console.log('Instance deleted.');}deleteInstance();
PHP
use Google\Cloud\Compute\V1\Client\InstancesClient;use Google\Cloud\Compute\V1\DeleteInstanceRequest;/** * Delete an instance. * * @param string $projectId Your Google Cloud project ID. * @param string $zone Zone where the instance you want to delete is (like "us-central1-a"). * @param string $instanceName Unique name for the Compute instance to delete. * * @throws \Google\ApiCore\ApiException if the remote call fails. * @throws \Google\ApiCore\ValidationException if local error occurs before remote call. */function delete_instance( string $projectId, string $zone, string $instanceName) { // Delete the Compute Engine instance using InstancesClient. $instancesClient = new InstancesClient(); $request = (new DeleteInstanceRequest()) ->setInstance($instanceName) ->setProject($projectId) ->setZone($zone); $operation = $instancesClient->delete($request); // Wait for the operation to complete. $operation->pollUntilComplete(); if ($operation->operationSucceeded()) { printf('Deleted instance %s' . PHP_EOL, $instanceName); } else { $error = $operation->getError(); printf('Failed to delete instance: %s' . PHP_EOL, $error?->getMessage()); }}
Python
from__future__importannotationsimportsysfromtypingimportAnyfromgoogle.api_core.extended_operationimportExtendedOperationfromgoogle.cloudimportcompute_v1defwait_for_extended_operation(operation:ExtendedOperation,verbose_name:str="operation",timeout:int=300)-> Any:""" Waits for the extended (long-running) operation to complete. If the operation is successful, it will return its result. If the operation ends with an error, an exception will be raised. If there were any warnings during the execution of the operation they will be printed to sys.stderr. Args: operation: a long-running operation you want to wait on. verbose_name: (optional) a more verbose name of the operation, used only during error and warning reporting. timeout: how long (in seconds) to wait for operation to finish. If None, wait indefinitely. Returns: Whatever the operation.result() returns. Raises: This method will raise the exception received from `operation.exception()` or RuntimeError if there is no exception set, but there is an `error_code` set for the `operation`. In case of an operation taking longer than `timeout` seconds to complete, a `concurrent.futures.TimeoutError` will be raised. """result=operation.result(timeout=timeout)ifoperation.error_code:print(f"Error during {verbose_name}: [Code: {operation.error_code}]: {operation.error_message}",file=sys.stderr,flush=True,)print(f"Operation ID: {operation.name}",file=sys.stderr,flush=True)raiseoperation.exception()orRuntimeError(operation.error_message)ifoperation.warnings:print(f"Warnings during {verbose_name}:\n",file=sys.stderr,flush=True)forwarninginoperation.warnings:print(f" - {warning.code}: {warning.message}",file=sys.stderr,flush=True)returnresultdefdelete_instance(project_id:str,zone:str,machine_name:str)-> None:""" Send an instance deletion request to the Compute Engine API and wait for it to complete. 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” machine_name: name of the machine you want to delete. """instance_client=compcompute_v1tInstancesClientprint(f"Deleting {machine_name} from {zone}...")operation=instinstance_client.deleteproject=project_id,zone=zone,instance=machine_name)wait_for_extended_operation(operation,"instance deletion")print(f"Instance {machine_name} deleted.")
Ruby
require"google/cloud/compute/v1"# Sends an instance deletion request to the Compute Engine API and waits for it to complete.## @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"# @param [String] instance_name name of the instance you want to delete.defdelete_instanceproject:,zone:,instance_name:# 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.newputs"Deleting #{instance_name} from #{zone}..."begin# Make the request to delete a VM instance.operation=client.deleteproject:project,zone:zone,instance:instance_name# Wait for the delete operation to complete.operation=wait_until_doneoperation:operationifoperation.error?warn"Error during deletion:",operation.errorelsecompute_operation=operation.operationwarn"Warning during creation:",compute_operation.warningsunlesscompute_operation.warnings.empty?puts"Instance #{instance_name} deleted."endrescue::Google::Cloud::Error=>ewarn"Exception during deletion:",eendend
PROJECT_ID: Es el ID del proyecto en el que se encuentra la instancia.
ZONE: La zona de la instancia.
INSTANCE_NAME: Es el nombre de la instancia.
De manera opcional, si habilitaste el cierre ordenado en la instancia, puedes borrarla sin cerrarla de forma ordenada o finalizar manualmente un cierre ordenado en curso. Para ello, realiza una solicitud DELETE al método beta instances.delete.
En la URL de la solicitud, incluye el parámetro de consulta noGracefulShutdown configurado como true:
De forma predeterminada, si borras una instancia de procesamiento, se borrarán la instancia y los recursos adjuntos a ella. Sin embargo, cuando borras una instancia con gcloud CLI, puedes especificar que se conserven los discos conectados, independientemente de su configuración de eliminación automática.
Para borrar una o más instancias en la misma zona y, al mismo tiempo, conservar sus discos conectados, usa el comando gcloud compute instances delete con la marca --keep-disks:
INSTANCE_NAMES: Es una lista de nombres de instancias separados por espacios, por ejemplo, instance-01 instance-02 instance-03.
KEEP_DISK_TYPE: Especifica uno de los siguientes valores:
Para conservar el almacenamiento persistente de arranque y no arranque adjunto, haz lo siguiente: all
Para conservar solo el almacenamiento persistente de arranque adjunto, haz lo siguiente: boot
Para conservar solo el almacenamiento persistente adjunto que no es de arranque: data
ZONE: Es la zona en la que se encuentran las instancias.
De manera opcional, si habilitaste el cierre ordenado en una o más instancias, puedes borrarlas sin cerrarlas de forma ordenada o finalizar manualmente un cierre ordenado en curso. Para ello, usa el comando gcloud beta compute instances delete con la marca --no-graceful-shutdown:
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2026-03-12 (UTC)"],[],[]]