Como gerenciar operações de longa duração

Nesta página, você aprenderá a gerenciar o ciclo de vida de uma operação de longa duração do Cloud Spanner usando APIs de operações.

Operações de longa duração são chamadas a métodos que podem demorar bastante tempo para concluir. O Cloud Spanner cria operações de longa duração para várias ações de banco de dados e instâncias. Um exemplo é o método para criar um banco de dados projects.instances.databases.create. Quando projects.instances.databases.create é chamado, o serviço Cloud Spanner cria uma operação de longa duração para rastrear o status de criação do banco de dados. O Cloud Spanner fornece APIs de operações que permitem verificar o status das operações de longa duração. Você também pode listar e cancelar operações de longa duração, bem como excluir operações de instâncias de longa duração.

Além das REST APIs, as seguintes fontes geram operações de longa duração quando você cria bancos de dados e instâncias, atualiza esquema e atualiza instâncias:

Gerencie as operações de longa duração do Cloud Spanner usando os seguintes métodos:

Ação Operações de banco de dados de longa duração Operações de instância de longa duração
Cancelar uma operação de longa duração cancel cancel
Excluir uma operação de longa duração Não compatível delete
Ver o status de uma operação de longa duração get get
Listar operações de longa duração list list

Operações de banco de dados

Veja abaixo as operações de banco de dados de longa duração.

Ver o status de uma operação de banco de dados de longa duração

Use projects.instances.databases.operations.get para ver o status de uma operação de banco de dados de longa duração.

Por exemplo, esta é uma resposta de 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"
  }
}

O valor de name na parte superior da resposta mostra que o serviço Cloud Spanner criou uma operação de banco de dados de longa duração denominada projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations/_auto_1492721321097206.

Para ver o status da operação de banco de dados de longa duração:

  1. Clique em projects.instances.databases.operations.get.
  2. Em name, insira o nome da operação do banco de dados de longa execução, conforme mostrado na resposta a projects.instances.databases.create ou projects.instances.databases.updateDdl. Por exemplo:

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

    Use o nome da operação que você recebeu em vez desse valor. Também é possível recuperar o nome da operação do banco de dados listando as operações de banco de dados de longa execução.

  3. Clique em Executar e veja a resposta. Quando uma operação é concluída, o campo done é definido como true.

Para pesquisar uma operação de banco de dados de longa duração, chame repetidamente o método projects.instances.databases.operations.get até que a operação seja concluída. Use um recuo entre cada solicitação de pesquisa. Por exemplo, pesquise a cada 10 segundos.

Listar operações de banco de dados de longa duração

Use projects.instances.databases.operations.list para listar operações de banco de dados de longa duração.

  1. Clique em projects.instances.databases.operations.list.
  2. Para name, insira:

    projects/[PROJECT_ID]/instances/test-instance/databases/example-db/operations
    
  3. Clique em Executar. A resposta contém as operações de banco de dados de longa duração.

Cancelar uma operação de banco de dados de longa duração

Use projects.instances.databases.operations.cancel para cancelar uma operação de instância de longa duração.

  1. Clique em projects.instances.databases.operations.cancel.
  2. Para name, insira o nome da operação do banco de dados de longa duração, como mostrado na resposta de operação do banco de dados de longa duração. Por exemplo:

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

    Use o nome da operação que você recebeu em vez desse valor. Também é possível recuperar o nome da operação do banco de dados listando as operações de banco de dados de longa execução.

  3. Clique em Executar.

Operações de instância

Veja a seguir as operações de instâncias de longa duração.

Ver o status de uma operação de instância de longa duração

Use projects.instances.operations.get para ver o status de uma operação de instância de longa duração.

Por exemplo, esta é uma resposta de 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"
  }
}

O valor de name na parte superior da resposta mostra que o serviço Cloud Spanner criou uma operação de instância de longa duração denominada projects/[PROJECT_ID]/instances/test-instance/operations/9af0cf8c1e123a2e.

Para ver o status da operação de instância de longa duração:

  1. Clique em projects.instances.operations.get.
  2. Em name, insira o nome da operação de instância de longa execução, como mostrado na resposta a projects.instances.create ou projects.instances.patch. Por exemplo:

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

    Use o nome da operação que você recebeu em vez desse valor. Também é possível recuperar o nome da operação de instância listando as operações de instância de longa execução.

  3. Clique em Executar e veja a resposta. Quando uma operação é concluída, o campo done é definido como true.

Para pesquisar uma operação de instância de longa duração, chame repetidamente o método projects.instances.operations.get até que a operação seja concluída. Use um recuo entre cada solicitação de pesquisa. Por exemplo, pesquise a cada 10 segundos.

Listar operações de instância de longa duração

Use projects.instances.operations.list para listar operações de instância de longa duração.

  1. Clique em projects.instances.operations.list.
  2. Para name, insira:

    projects/[PROJECT_ID]/instances/test-instance/operations
    
  3. Clique em Executar. A resposta contém as operações de instância de longa duração.

Cancelar uma operação de instância de longa duração

Use projects.instances.operations.cancel para cancelar uma operação de instância de longa duração.

  1. Clique em projects.instances.operations.cancel.
  2. Para name, insira o nome da operação de instância de longa duração, como mostrado na resposta da operação de instância de longa duração. Por exemplo:

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

    Use o nome da operação que você recebeu em vez desse valor. Também é possível recuperar o nome da operação de instância listando as operações de instância de longa execução.

  3. Clique em Executar.

Excluir uma operação de instância de longa duração

Use projects.instances.operations.delete para excluir uma operação de instância de longa duração.

  1. Clique em projects.instances.operations.delete.
  2. Para name, insira o nome da operação de instância de longa duração, como mostrado na resposta da operação de instância de longa duração. Por exemplo:

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

    Use o nome da operação que você recebeu em vez desse valor. Também é possível recuperar o nome da operação de instância listando as operações de instância de longa execução.

  3. Clique em Executar.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Spanner