Gestione di operazioni a lunga esecuzione

Questa pagina descrive come gestire il ciclo di vita di un'operazione a lunga esecuzione di Cloud Spanner utilizzando le API operative.

Le operazioni a lunga esecuzione sono chiamate di metodo, il cui completamento può richiedere molto tempo. Spanner crea operazioni a lunga esecuzione per diverse azioni di database, istanze e backup. Un esempio è il metodo per ripristinare un database, projects.instances.databases.restore. Quando ripristini un database, il servizio Spanner crea un'operazione a lunga esecuzione per monitorare l'avanzamento del ripristino. Spanner fornisce API operative che consentono di controllare lo stato delle operazioni a lunga esecuzione. Puoi anche elencare e annullare operazioni a lunga esecuzione, nonché eliminare operazioni a lunga esecuzione.

In questa pagina viene descritto come gestire le operazioni a lunga esecuzione con l'API REST. Tuttavia, puoi anche gestire le operazioni a lunga esecuzione con:

Gestisci le operazioni a lunga esecuzione di Spanner utilizzando questi metodi:

Azione Operazioni di database a lunga esecuzione Operazioni di backup a lunga esecuzione Operazioni di istanza a lunga esecuzione
Annullare un'operazione a lunga esecuzione cancel cancel cancel
Eliminare un'operazione a lunga esecuzione Non supportato Non supportato delete
Verificare lo stato di un'operazione a lunga esecuzione get get get
Elenca operazioni a lunga esecuzione list list list

Operazioni del database

Di seguito sono riportate le operazioni di database a lunga esecuzione.

Verificare lo stato di un'operazione di database a lunga esecuzione

Utilizza projects.instances.databases.operations.get per ottenere lo stato di un'operazione di database a lunga esecuzione.

Ad esempio, questa è una risposta di projects.instances.databases.create:

{
  "name": "projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206",
  "metadata": {
    "@type": "type.googleapis.com/google.spanner.admin.database.v1.CreateDatabaseMetadata",
    "database": "projects/[PROJECT_ID]/instances/test-instance/databases/example-db"
  }
}

Il valore name nella parte superiore della risposta mostra il servizio Spanner creato un'operazione di database a lunga esecuzione denominata projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206.

Per ottenere lo stato dell'operazione a lunga esecuzione del database:

  1. Fai clic su projects.instances.databases.operations.get.
  2. In name, inserisci il nome dell'operazione di database a lunga esecuzione come mostrato nella risposta a projects.instances.databases.create o projects.instances.databases.updateDdl. Ad esempio:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
    

    Utilizza il nome dell'operazione che hai ricevuto anziché questo valore. Puoi recuperare il nome dell'operazione per database anche elencando le operazioni di database a lunga esecuzione.

  3. Fai clic su Esegui e visualizza la risposta. Al termine di un'operazione, il campo done verrà impostato su true.

Per eseguire il polling di un'operazione di database a lunga esecuzione, richiama ripetutamente il metodo projects.instances.databases.operations.get finché l'operazione non viene completata. Utilizzare un backoff tra ogni richiesta del sondaggio. Ad esempio, esegui il polling ogni 10 secondi.

Elenca operazioni di database a lunga esecuzione

Utilizza projects.instances.databases.operations.list per elencare le operazioni di database a lunga esecuzione.

  1. Fai clic su projects.instances.databases.operations.list.
  2. In name (nome), inserisci:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations
    
  3. Fai clic su Execute (Esegui). La risposta contiene le operazioni di database a lunga esecuzione.

Annullamento di un'operazione di database a lunga esecuzione

Utilizza projects.instances.databases.operations.cancel per annullare un'operazione di database a lunga esecuzione.

  1. Fai clic su projects.instances.databases.operations.cancel.
  2. In name, inserisci il nome dell'operazione di database a lunga esecuzione, come mostrato nella risposta dell'operazione di database a lunga esecuzione. Ad esempio:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206
    

    Utilizza il nome dell'operazione che hai ricevuto anziché questo valore. Puoi recuperare il nome dell'operazione per database anche elencando le operazioni di database a lunga esecuzione.

  3. Fai clic su Execute (Esegui).

Operazioni di backup

Di seguito sono riportate le operazioni di backup a lunga esecuzione.

Verificare lo stato di un'operazione di backup a lunga esecuzione

Utilizza projects.instances.backups.operations.get per ottenere lo stato di un'operazione di backup a lunga esecuzione.

Ad esempio, questa è una risposta di projects.instances.backups.create:

{
  "name": "projects/[PROJECT_ID]/instances/test-instance/backups/example-db-backup-5/operations/_auto_1492721321097206",
  "metadata": {
    "@type": "type.googleapis.com/google.spanner.admin.database.v1.CreateBackupMetadata",
    "name": "projects/[PROJECT_ID]/instances/test-instance/backup/example-db-backup-5"
  }
}

Il valore name nella parte superiore della risposta mostra il servizio Spanner creato un'operazione di backup a lunga esecuzione denominata projects/[PROJECT_ID]/instances/test-instance/backups/example-db/operations/_auto_op_0cf69250b487c2f7.

Per ottenere lo stato dell'operazione di backup a lunga esecuzione:

  1. Fai clic su projects.instances.backups.operations.get.
  2. In name, inserisci il nome dell'operazione di backup a lunga esecuzione come mostrato nella risposta a projects.instances.backups.create. Ad esempio:

    projects/[PROJECT_ID]/instances/test-instance/backups/example-db/operations/_auto_1492721321097206
    

    Utilizza il nome dell'operazione che hai ricevuto anziché questo valore. Puoi recuperare il nome dell'operazione di backup anche elencando le operazioni di backup a lunga esecuzione.

  3. Fai clic su Esegui e visualizza la risposta. Al termine di un'operazione, il campo done verrà impostato su true.

Per eseguire il polling di un'operazione di backup a lunga esecuzione, richiama ripetutamente il metodo projects.instances.backups.operations.get finché l'operazione non viene completata. Utilizzare un backoff tra ogni richiesta del sondaggio. Ad esempio, esegui il polling ogni 10 secondi.

Elenca operazioni di backup a lunga esecuzione

Utilizza projects.instances.backups.operations.list per elencare le operazioni su un singolo backup o projects.instances.backupOperations.list per elencare tutte le operazioni di backup nell'istanza.

  1. Fai clic su projects.instances.backups.operations.list.
  2. In name (nome), inserisci:

    projects/[PROJECT_ID]/instances/test-instance/backups/example-db-backup-4/operations
    
  3. Fai clic su Execute (Esegui). La risposta contiene le operazioni a lunga esecuzione.

Annullare un'operazione di backup a lunga esecuzione

Utilizza projects.instances.backups.operations.cancel per annullare un'operazione di backup a lunga esecuzione.

  1. Fai clic su projects.instances.backups.operations.cancel.
  2. In name, inserisci il nome dell'operazione di backup a lunga esecuzione come mostrato nella risposta dell'operazione di backup a lunga esecuzione. Ad esempio:

    projects/[PROJECT_ID]/instances/test-instance/backups/example-db-backup-4/operations/_auto_1492721321097206
    

    Utilizza il nome dell'operazione che hai ricevuto anziché questo valore. Puoi recuperare il nome dell'operazione di backup anche elencando le operazioni di backup a lunga esecuzione.

  3. Fai clic su Execute (Esegui).

Operazioni dell'istanza

Di seguito sono riportate le operazioni di istanza a lunga esecuzione.

Visualizzare lo stato di un'operazione di istanza a lunga esecuzione

Utilizza projects.instances.operations.get per ottenere lo stato di un'operazione di istanza a lunga esecuzione.

Ad esempio, questa è una risposta di projects.instances.create:

{
  "name": "projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e",
  "metadata": {
    "@type": "type.googleapis.com/google.spanner.admin.instance.v1.CreateInstanceMetadata",
    "instance": {
      "name": "projects/[PROJECT_ID]/instances/test-instance",
      "config": "projects/[PROJECT_ID]/instanceConfigs/regional-us-central1",
      "displayName": "Test Instance",
      "nodeCount": 1,
      "state": "READY"
    },
    "startTime": "2017-04-24T22:45:41.130854Z"
  }
}

Il valore name nella parte superiore della risposta mostra che il servizio Spanner ha creato un'operazione di istanza a lunga esecuzione denominata projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e.

Per ottenere lo stato dell'operazione di istanza a lunga esecuzione:

  1. Fai clic su projects.instances.operations.get.
  2. In name, inserisci il nome dell'operazione a lunga esecuzione dell'istanza, come mostrato nella risposta a projects.instances.create o projects.instances.patch. Ad esempio:

    projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
    

    Utilizza il nome dell'operazione che hai ricevuto anziché questo valore. Puoi anche recuperare il nome dell'operazione dell'istanza elencando le operazioni di istanza a lunga esecuzione.

  3. Fai clic su Esegui e visualizza la risposta. Al termine di un'operazione, il campo done verrà impostato su true.

Per eseguire il polling di un'operazione di istanza a lunga esecuzione, richiama ripetutamente il metodo projects.instances.operations.get fino al completamento dell'operazione. Utilizzare un backoff tra ogni richiesta del sondaggio. Ad esempio, esegui il polling ogni 10 secondi.

Elenca operazioni di lunga esecuzione delle istanze

Utilizza projects.instances.operations.list per elencare le operazioni delle istanze a lunga esecuzione.

  1. Fai clic su projects.instances.operations.list.
  2. In name (nome), inserisci:

    projects/[PROJECT_ID]/instances/test-instance/operations
    
  3. Fai clic su Execute (Esegui). La risposta contiene le operazioni dell'istanza a lunga esecuzione.

Annulla un'operazione di istanza a lunga esecuzione

Utilizza projects.instances.operations.cancel per annullare un'operazione di istanza a lunga esecuzione.

  1. Fai clic su projects.instances.operations.cancel.
  2. In name, inserisci il nome dell'operazione a lunga esecuzione dell'istanza, come mostrato nella risposta dell'operazione dell'istanza a lunga esecuzione. Ad esempio:

    projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
    

    Utilizza il nome dell'operazione che hai ricevuto anziché questo valore. Puoi anche recuperare il nome dell'operazione dell'istanza elencando le operazioni di istanza a lunga esecuzione.

  3. Fai clic su Execute (Esegui).

Elimina un'operazione di istanza a lunga esecuzione

Utilizza projects.instances.operations.delete per eliminare un'operazione di istanza a lunga esecuzione.

  1. Fai clic su projects.instances.operations.delete.
  2. In name, inserisci il nome dell'operazione a lunga esecuzione dell'istanza, come mostrato nella risposta dell'operazione dell'istanza a lunga esecuzione. Ad esempio:

    projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e
    

    Utilizza il nome dell'operazione che hai ricevuto anziché questo valore. Puoi anche recuperare il nome dell'operazione dell'istanza elencando le operazioni di istanza a lunga esecuzione.

  3. Fai clic su Execute (Esegui).