Crie uma instância

Uma instância do Bigtable é um contentor para clusters do Bigtable. Uma instância com mais do que um cluster usa a replicação. Pode criar clusters em até 8 regiões, com tantos clusters em cada região quantas zonas existirem.

Esta página explica como criar uma instância. Antes de ler esta página, deve conhecer a vista geral do Bigtable. Também deve ler a vista geral das instâncias, dos clusters e dos nós.

Antes de começar

Prepare o seu ambiente:

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud Bigtable API, Cloud Bigtable Admin API APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  7. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Cloud Bigtable API, Cloud Bigtable Admin API APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  13. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  14. Execute o seguinte comando para instalar a CLI cbt:
    gcloud components install cbt
  15. Planeie a sua configuração:

    1. Opcional: se planeia ativar a replicação, faça o seguinte:

    2. Opcional: se quiser usar chaves de encriptação geridas pelo cliente (CMEK) em vez da encriptação predefinida gerida pela Google, conclua as tarefas em Criar uma instância com CMEK e tenha o ID da chave CMEK pronto antes de criar a nova instância. Não pode adicionar proteção CMEK a uma instância depois de esta ter sido criada, e não pode modificar nem substituir a chave CMEK depois de a instância ter sido criada.

    Crie uma instância

    Para criar uma instância do Bigtable:

    Consola

    1. Na Google Cloud consola, aceda à página Criar instância.

      Aceda a Criar instância

    2. Introduza um nome para a instância.

      A Google Cloud consola apresenta este nome para identificar a sua instância.

    3. Introduza um ID da instância.

      O ID da instância é um identificador permanente da instância.

    4. Clique em Continuar.

    5. Escolha se quer usar um disco SSD ou HDD para os seus clusters. Na maioria dos casos, o SSD é a melhor opção. Esta escolha é permanente. Saiba mais.

    6. Clique em Continuar.

    7. Introduza um ID do cluster para o primeiro cluster.

      O ID do cluster é um identificador permanente do cluster.

    8. Escolha a região e a zona onde o primeiro cluster vai ser executado.

    9. Opcional: para configurar o cluster de modo a que seja sempre dimensionado em incrementos de dois nós, selecione Ativar o dimensionamento de nós 2x. O dimensionamento de nós 2x não está disponível em todas as zonas. Para mais informações, consulte o artigo Fator de dimensionamento do nó.

    10. Escolha um modo de dimensionamento de nós para o cluster. Na maioria dos casos, deve escolher o ajuste de escala automático. Para orientações sobre o dimensionamento, consulte o artigo Dimensionamento automático.

      1. Para a atribuição manual de nós, introduza o número de nós do Bigtable para o primeiro cluster. Se não tiver a certeza de quantos nós precisa, use o valor predefinido. Pode adicionar mais nós posteriormente.
      2. Para a escalabilidade automática, introduza valores para o seguinte:
        • Número mínimo de nós
        • Número máximo de nós
        • Alvo de utilização da CPU
        • Objetivo de utilização do armazenamento
    11. Opcional: para proteger a sua instância com CMEK em vez da encriptação predefinida gerida pela Google, conclua os seguintes passos:

      1. Clique em Mostrar opções de encriptação.
      2. Selecione o botão de opção junto a Chave de encriptação gerida pelo cliente (CMEK).
      3. Selecione ou introduza o nome do recurso da chave CMEK que quer usar para o cluster. Não pode adicionar esta informação mais tarde.
      4. Se lhe for pedido que conceda autorização à conta de serviço da chave CMEK, clique em Conceder. A sua conta de utilizador tem de ter a função de administrador do Cloud KMS para concluir esta tarefa.
      5. Clique em Guardar.
    12. Opcional: para ativar a replicação agora, conclua os seguintes passos adicionais:

      1. Clique em Mostrar opções avançadas.
      2. Clique em Adicionar cluster, introduza as definições do cluster e, de seguida, clique em Adicionar. Repita este passo para criar clusters adicionais na instância. Também pode ativar a replicação mais tarde adicionando um cluster.

      Cada zona numa região só pode conter um cluster. Se o botão Adicionar cluster estiver desativado, altere a zona do primeiro cluster.

      Para criar uma instância com mais de seis clusters, comece por criar uma instância com seis clusters e, em seguida, adicione mais clusters à instância.

    13. Clique em Criar para criar a instância.

    14. Reveja as definições de replicação no perfil da app predefinido para ver se fazem sentido para o seu exemplo de utilização de replicação. Pode ter de atualizar o perfil da app predefinida ou criar perfis de apps personalizados.

    gcloud

    1. Use o comando bigtable instances create para criar uma instância:

      gcloud bigtable instances create INSTANCE_ID \
          --display-name=DISPLAY_NAME \
          [--cluster-storage-type=CLUSTER_STORAGE_TYPE] \
          [--cluster-config=id=CLUSTER_ID,zone=CLUSTER_ZONE, \
          nodes=NODES] \
          [--cluster-config=id=CLUSTER_ID,zone=CLUSTER_ZONE, \
          autoscaling-min-nodes=AUTOSCALING_MIN_NODES, \
          autoscaling-max-nodes=AUTOSCALING_MAX_NODES, \
          autoscaling-cpu-target=AUTOSCALING_CPU_TARGET, \
          autoscaling-storage-target=AUTOSCALING_STORAGE_TARGET, \
          kms-key=KMS_KEY], \
          [node-scaling-factor=NODE_SCALING_FACTOR]
      

      Substitua o seguinte:

      • INSTANCE_ID: O identificador permanente da instância.
      • DISPLAY_NAME: um nome legível por humanos que identifica a instância na consola Google Cloud .
      • CLUSTER_ID: O identificador permanente do cluster.
      • CLUSTER_ZONE: A zona onde o cluster é executado.

      Tem de configurar, pelo menos, um cluster para a instância, usando a flag --cluster-config. Para criar uma instância com vários clusters, repita a flag --cluster-config para cada cluster.

      Para a atribuição manual de nós, a definição da flag nodes no elemento --cluster-config é opcional. Se não for definido nenhum valor, o Bigtable atribui nós ao cluster automaticamente com base na sua pegada de dados e otimiza para uma utilização de armazenamento de 50%. Esta atribuição automática de nós tem um impacto nos preços. Se quiser controlar o número de nós num cluster, substitua NODES pelo número de nós que quer no cluster. Saiba mais sobre os nós.

      Na maioria dos casos, escolha o dimensionamento automático em vez da atribuição manual de nós. Para o dimensionamento automático, forneça opções autoscaling- na flag --cluster-config (autoscaling-storage-target é opcional) e não use nodes. Consulte o artigo Dimensionamento automático para obter orientações sobre a escolha dos valores para as definições de dimensionamento automático. Substitua o seguinte pelas chaves de opções cluster-config:

      • AUTOSCALING_MIN_NODES: o número mínimo de nós para o cluster.
      • AUTOSCALING_MAX_NODES: o número máximo de nós para o cluster.
      • AUTOSCALING_CPU_TARGET: a percentagem de utilização da CPU alvo para o cluster. Este valor tem de estar entre 10 e 80.
      • AUTOSCALING_STORAGE_TARGET: (Opcional) O objetivo de utilização do armazenamento em GiB que o Bigtable mantém adicionando ou removendo nós.
      • KMS_KEY: a chave CMEK para o cluster.

        O valor KMS_KEY tem de ser definido no seguinte formato:

        projects/PROJECT/locations/LOCATION/keyRings/KEYRING/cryptoKeys/KEY
        
        

        Substitua o seguinte:

        • PROJECT: o identificador permanente do projeto
        • LOCATION: a localização do seu cluster
        • KEYRING: o nome do conjunto de chaves que contém a chave
        • KEY: o nome da chave

        Segue-se um exemplo:

        projects/examplestore.com:dev/locations/us-east1/keyRings/devt-cmek-2/cryptoKeys/key2

        Se a instância estiver protegida por CMEK, cada cluster tem de estar na mesma região que a respetiva chave CMEK. Só pode adicionar clusters CMEK a instâncias que já estejam protegidas com CMEK. Saiba mais.

      O comando aceita as seguintes flags opcionais:

      • --cluster-storage-type=CLUSTER_STORAGE_TYPE: o tipo de armazenamento a usar para a instância. O valor predefinido é SSD. Na maioria dos casos, o valor predefinido é o melhor. Esta escolha é permanente. Saiba mais.

      • --project=PROJECT: O projeto no qual criar o cluster, se for diferente do projeto atual.

      • node-scaling-factor=NODE_SCALING_FACTOR: um sinalizador que ativa o dimensionamento de nós 2x. Pode ativar esta funcionalidade com o ajuste de escala manual e o ajuste de escala automático. Os valores aceitáveis são node-scaling-factor-2x ou node-scaling-factor-1x.

      Para ver uma lista de zonas do Bigtable que não estão disponíveis para o dimensionamento de nós 2x, consulte as limitações do fator de dimensionamento de nós.

    2. Reveja as definições de replicação no perfil da app predefinido para ver se fazem sentido para o seu exemplo de utilização de replicação. Pode ter de atualizar o perfil da app predefinida ou criar perfis de apps personalizados.

    cbt

    .
    1. Comece por criar uma instância com um único cluster. Use o comando createinstance para criar uma instância:

      cbt createinstance INSTANCE_ID \
          DISPLAY_NAME \
          CLUSTER_ID \
          CLUSTER_ZONE \
          CLUSTER_NUM_NODES \
          CLUSTER_STORAGE_TYPE
      

      Forneça os seguintes dados:

      • INSTANCE_ID: O identificador permanente da instância.
      • DISPLAY_NAME: um nome legível por humanos que identifica a instância na consola Google Cloud .
      • CLUSTER_ID: O identificador permanente do cluster.
      • CLUSTER_ZONE: A zona onde o cluster é executado.
      • CLUSTER_NUM_NODES: este campo é opcional. Se não for definido nenhum valor, o Bigtable atribui automaticamente nós com base na sua pegada de dados e otimiza para uma utilização de armazenamento de 50%. Se quiser controlar o número de nós num cluster, atualize o valor CLUSTER_NUM_NODES. Certifique-se de que o número de nós está definido como um valor diferente de zero. Saiba mais sobre os nós.
      • CLUSTER_STORAGE_TYPE: O tipo de armazenamento a usar para o cluster. Cada cluster numa instância tem de usar o mesmo tipo de armazenamento. Aceita os valores SSD e HDD. Na maioria dos casos, SSD é a melhor opção. Esta escolha é permanente. Saiba mais.
    2. Para ativar a replicação, use o comando createcluster para adicionar um cluster:

      
      cbt -instance=INSTANCE_ID \
      createcluster CLUSTER_ID \
      ZONE \
      NUM_NODES \
      STORAGE_TYPE
      
      

      Forneça os seguintes dados:

      • INSTANCE_ID: o identificador permanente da instância que acabou de criar.
      • CLUSTER_ID: O identificador permanente do cluster.
      • ZONE: A zona onde o cluster é executado.

        Cada zona numa região só pode conter um cluster. Por exemplo, se uma instância tiver um cluster em us-east1-b, pode adicionar um cluster numa zona diferente na mesma região, como us-east1-c, ou numa zona numa região separada, como europe-west2-a.

      • NUM_NODES: este campo é opcional. Se não for definido nenhum valor, o Bigtable atribui automaticamente nós com base na sua pegada de dados e otimiza para uma utilização de armazenamento de 50%. Se quiser controlar o número de nós num cluster, atualize o valor NUM_NODES. Certifique-se de que o número de nós está definido como um valor diferente de zero.

        Em muitos casos, cada cluster numa instância deve ter o mesmo número de nós, mas existem exceções. Saiba mais sobre os nós e a replicação.

      • STORAGE_TYPE: O tipo de armazenamento a usar para o cluster. Cada cluster numa instância tem de usar o mesmo tipo de armazenamento. Aceita os valores SSD e HDD.

    3. (Opcional) Reveja as definições de replicação no perfil da app predefinido para ver se fazem sentido para o seu exemplo de utilização de replicação. Pode ter de atualizar o perfil da app predefinida ou criar perfis de apps personalizados.

    C++

    Para saber como instalar e usar a biblioteca cliente do Bigtable, consulte o artigo Bibliotecas cliente do Bigtable.

    Para se autenticar no Bigtable, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.

    namespace cbta = ::google::cloud::bigtable_admin;
    using ::google::cloud::future;
    using ::google::cloud::Location;
    using ::google::cloud::Project;
    using ::google::cloud::StatusOr;
    [](cbta::BigtableInstanceAdminClient instance_admin,
       std::string const& project_id, std::string const& instance_id,
       std::string const& zone) {
      auto const project = Project(project_id);
      std::string project_name = project.FullName();
      std::string cluster_id = instance_id + "-c1";
    
      google::bigtable::admin::v2::Instance in;
      in.set_type(google::bigtable::admin::v2::Instance::PRODUCTION);
      in.set_display_name("Put description here");
    
      google::bigtable::admin::v2::Cluster cluster;
      cluster.set_location(Location(project, zone).FullName());
      cluster.set_serve_nodes(3);
      cluster.set_default_storage_type(google::bigtable::admin::v2::HDD);
    
      std::map<std::string, google::bigtable::admin::v2::Cluster> cluster_map = {
          {cluster_id, std::move(cluster)}};
    
      future<StatusOr<google::bigtable::admin::v2::Instance>> instance_future =
          instance_admin.CreateInstance(project_name, instance_id, std::move(in),
                                        std::move(cluster_map));
      // Show how to perform additional work while the long running operation
      // completes. The application could use future.then() instead.
      std::cout << "Waiting for instance creation to complete " << std::flush;
      instance_future.wait_for(std::chrono::seconds(1));
      std::cout << '.' << std::flush;
      auto instance = instance_future.get();
      if (!instance) throw std::move(instance).status();
      std::cout << "DONE, details=" << instance->DebugString() << "\n";
    }

    C#

    Para saber como instalar e usar a biblioteca cliente do Bigtable, consulte o artigo Bibliotecas cliente do Bigtable.

    Para se autenticar no Bigtable, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.

    // Creates a production instance with "<intanceId>-prod" instance ID,
    // with cluster ID "ssd-cluster1", 3 nodes and location us-east1-b.
    displayName += " Prod"; // Display name is for display purposes only. It doesn't have to equal instanceId and can be amended after instance is created.
    string instanceId = Regex.Replace(displayName, @"[^A-Za-z0-9_\.~]+", "-").ToLower();
    
    // Please refer to the link below for the full list of available locations:
    // https://cloud.google.com/bigtable/docs/locations
    string zone1 = "us-east1-b";
    
    // The instance to create.
    Instance myInstance = new Instance
    {
        DisplayName = displayName,
        // You can choose DEVELOPMENT or PRODUCTION type here.
        // If not set, will default to PRODUCTION type.
        // Instance type can be upgraded from DEVELOPMENT to PRODUCTION but cannot be dowgraded after the instance is created.
        Type = Instance.Types.Type.Production,
        Labels = { { "prod-label", "prod-label" } }
    };
    
    // The first cluster to be created within the instance.
    Cluster myCluster1 = new Cluster
    {
        // You can choose SSD or HDD storage type here: StorageType.Ssd or StorageType.Hdd.
        // Cluster storage type can not be changed after the instance is created.
        // If not set will default to SSD type.
        DefaultStorageType = StorageType.Ssd,
        LocationAsLocationName = new LocationName(projectId, zone1),
        // Serve Nodes count can only be set if PRODUCTION type instance is being created.
        // Minimum count of 3 serve nodes must be specified.
        // Serve Nodes count can be increased and decreased after an instance is created.
        ServeNodes = 3
    };
    
    // Initialize request argument(s).
    CreateInstanceRequest request = new CreateInstanceRequest
    {
        ParentAsProjectName = new ProjectName(projectId),
        Instance = myInstance,
        InstanceId = instanceId,
        // Must specify at lease one cluster.
        // Only PRODUCTION type instance can be created with more than one cluster.
        // Currently all clusters must have the same storage type.
        // Clusters must be set to different locations.
        Clusters = { { "ssd-cluster1", myCluster1 } }
    };
    
    try
    {
        // Make a request.
        Operation<Instance, CreateInstanceMetadata> createInstanceResponse =
            bigtableInstanceAdminClient.CreateInstance(request);
        Console.WriteLine("Waiting for operation to complete...");
    
        // Poll until the returned long-running operation is complete
        Operation<Instance, CreateInstanceMetadata> completedResponse =
            createInstanceResponse.PollUntilCompleted();
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Exception while creating {displayName} instance");
        Console.WriteLine(ex.Message);
    }

    Java

    Para saber como instalar e usar a biblioteca cliente do Bigtable, consulte o artigo Bibliotecas cliente do Bigtable.

    Para se autenticar no Bigtable, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.

    // Creates a Production Instance with the ID "ssd-instance",
    // cluster id "ssd-cluster", 3 nodes and location "us-central1-f".
    CreateInstanceRequest createInstanceRequest =
        CreateInstanceRequest.of(instanceId)
            .addCluster(clusterId, "us-central1-f", 3, StorageType.SSD)
            .setType(Instance.Type.PRODUCTION)
            .addLabel("department", "accounting");
    // Creates a production instance with the given request.
    try {
      Instance instance = adminClient.createInstance(createInstanceRequest);
      System.out.printf("PRODUCTION type instance %s created successfully%n", instance.getId());
    } catch (Exception e) {
      System.err.println("Failed to create instance: " + e.getMessage());
      throw e;
    }

    Node.js

    Para saber como instalar e usar a biblioteca cliente do Bigtable, consulte o artigo Bibliotecas cliente do Bigtable.

    Para se autenticar no Bigtable, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.

    // Creates a Production Instance with the ID "ssd-instance"
    // with cluster id "ssd-cluster", 3 nodes and location us-central1-f
    const {BigtableInstanceAdminClient} = require('@google-cloud/bigtable').v2;
    const instanceAdminClient = new BigtableInstanceAdminClient();
    const projectId = await instanceAdminClient.getProjectId();
    
    const instanceOptions = {
      parent: `projects/${projectId}`,
      instanceId: instanceID,
      instance: {
        displayName: instanceID,
        labels: {'prod-label': 'prod-label'},
        type: 'PRODUCTION',
      },
      clusters: {
        [clusterID]: {
          location: `projects/${projectId}/locations/us-central1-f`,
          serveNodes: 3,
          defaultStorageType: 'SSD',
        },
      },
    };
    
    // Create production instance with given options
    const [prodInstance, operation] =
      await instanceAdminClient.createInstance(instanceOptions);
    await operation.promise();
    console.log(`Created Instance: ${prodInstance.name}`);

    PHP

    Para saber como instalar e usar a biblioteca cliente do Bigtable, consulte o artigo Bibliotecas cliente do Bigtable.

    Para se autenticar no Bigtable, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.

    use Exception;
    use Google\ApiCore\ApiException;
    use Google\Cloud\Bigtable\Admin\V2\Client\BigtableInstanceAdminClient;
    use Google\Cloud\Bigtable\Admin\V2\Cluster;
    use Google\Cloud\Bigtable\Admin\V2\CreateInstanceRequest;
    use Google\Cloud\Bigtable\Admin\V2\GetInstanceRequest;
    use Google\Cloud\Bigtable\Admin\V2\Instance;
    use Google\Cloud\Bigtable\Admin\V2\Instance\Type as InstanceType;
    use Google\Cloud\Bigtable\Admin\V2\StorageType;
    
    /**
     * Create a production Bigtable instance
     *
     * @param string $projectId The Google Cloud project ID
     * @param string $instanceId The ID of the Bigtable instance to be generated
     * @param string $clusterId The ID of the cluster to be generated
     * @param string $locationId The Bigtable region ID where you want your instance to reside
     */
    function create_production_instance(
        string $projectId,
        string $instanceId,
        string $clusterId,
        string $locationId = 'us-east1-b'
    ): void {
        $instanceAdminClient = new BigtableInstanceAdminClient();
    
        $projectName = $instanceAdminClient->projectName($projectId);
        $instanceName = $instanceAdminClient->instanceName($projectId, $instanceId);
    
        $serveNodes = 3;
        $storageType = StorageType::SSD;
        $production = InstanceType::PRODUCTION;
        $labels = ['prod-label' => 'prod-label'];
    
        $instance = new Instance();
        $instance->setDisplayName($instanceId);
    
        $instance->setLabels($labels);
        $instance->setType($production);
    
        $cluster = new Cluster();
        $cluster->setDefaultStorageType($storageType);
        $locationName = $instanceAdminClient->locationName($projectId, $locationId);
        $cluster->setLocation($locationName);
        $cluster->setServeNodes($serveNodes);
        $clusters = [
            $clusterId => $cluster
        ];
        try {
            $getInstanceRequest = (new GetInstanceRequest())
                ->setName($instanceName);
            $instanceAdminClient->getInstance($getInstanceRequest);
            printf('Instance %s already exists.' . PHP_EOL, $instanceId);
            throw new Exception(sprintf('Instance %s already exists.' . PHP_EOL, $instanceId));
        } catch (ApiException $e) {
            if ($e->getStatus() === 'NOT_FOUND') {
                printf('Creating an Instance: %s' . PHP_EOL, $instanceId);
                $createInstanceRequest = (new CreateInstanceRequest())
                    ->setParent($projectName)
                    ->setInstanceId($instanceId)
                    ->setInstance($instance)
                    ->setClusters($clusters);
                $operationResponse = $instanceAdminClient->createInstance($createInstanceRequest);
                $operationResponse->pollUntilComplete();
                if (!$operationResponse->operationSucceeded()) {
                    print('Error: ' . $operationResponse->getError()->getMessage());
                } else {
                    printf('Instance %s created.', $instanceId);
                }
            } else {
                throw $e;
            }
        }
    }

    Python

    Para saber como instalar e usar a biblioteca cliente do Bigtable, consulte o artigo Bibliotecas cliente do Bigtable.

    Para se autenticar no Bigtable, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.

    cluster = instance.cluster(
        cluster_id,
        location_id=location_id,
        serve_nodes=serve_nodes,
        default_storage_type=storage_type,
    )
    if not instance.exists():
        print("\nCreating an instance")
        # Create instance with given options
        operation = instance.create(clusters=[cluster])
        # Ensure the operation completes.
        operation.result(timeout=480)
        print("\nCreated instance: {}".format(instance_id))

    Ruby

    Para saber como instalar e usar a biblioteca cliente do Bigtable, consulte o artigo Bibliotecas cliente do Bigtable.

    Para se autenticar no Bigtable, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.

    # instance_id      = "my-instance"
    # cluster_id       = "my-cluster"
    # cluster_location = "us-east1-b"
    puts "Creating a PRODUCTION Instance"
    job = bigtable.create_instance(
      instance_id,
      display_name: "Sample production instance",
      labels:       { "env": "production" },
      type:         :PRODUCTION # Optional as default type is :PRODUCTION
    ) do |clusters|
      clusters.add cluster_id, cluster_location, nodes: 3, storage_type: :SSD
    end
    
    job.wait_until_done!
    instance = job.instance
    puts "Created Instance: #{instance.instance_id}"

    O que se segue?