Hola, mundo en Go

Este ejemplo es una aplicación "hola, mundo" muy sencilla escrita en Go que muestra cómo hacer lo siguiente:

  • Configurar la autenticación
  • Conéctate a una instancia de Bigtable.
  • Crea una tabla.
  • Escribe datos en la tabla.
  • Lee los datos.
  • Elimina la tabla.

Configurar la autenticación

Para usar las Go muestras de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

    Instala Google Cloud CLI.

    Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    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.

    If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

Para obtener más información, consulta Set up authentication for a local development environment.

Ejecutar la muestra

En este ejemplo se usa el paquete Cloud Bigtable de la biblioteca de cliente de Google Cloud para Go para comunicarse con Bigtable.

Para ejecutar este programa de ejemplo, sigue las instrucciones del ejemplo en GitHub.

Usar la biblioteca de cliente de Cloud con Bigtable

La aplicación de ejemplo se conecta a Bigtable y muestra algunas operaciones sencillas.

Importar la biblioteca de cliente

En el ejemplo se usan las siguientes importaciones:

import (
	"context"
	"flag"
	"fmt"
	"log"

	"cloud.google.com/go/bigtable"
)

Conectarse a Bigtable para gestionar tablas

Para gestionar tablas, conéctate a Bigtable mediante bigtable.NewAdminClient().

adminClient, err := bigtable.NewAdminClient(ctx, *project, *instance)
if err != nil {
	log.Fatalf("Could not create admin client: %v", err)
}

Crear una tabla

Crea una tabla con AdminClient.CreateTable() y, a continuación, consulta información sobre la tabla con AdminClient.TableInfo(). Crea una familia de columnas con AdminClient.CreateColumnFamily().

tables, err := adminClient.Tables(ctx)
if err != nil {
	log.Fatalf("Could not fetch table list: %v", err)
}

if !sliceContains(tables, tableName) {
	log.Printf("Creating table %s", tableName)
	if err := adminClient.CreateTable(ctx, tableName); err != nil {
		log.Fatalf("Could not create table %s: %v", tableName, err)
	}
}

tblInfo, err := adminClient.TableInfo(ctx, tableName)
if err != nil {
	log.Fatalf("Could not read info for table %s: %v", tableName, err)
}

if !sliceContains(tblInfo.Families, columnFamilyName) {
	if err := adminClient.CreateColumnFamily(ctx, tableName, columnFamilyName); err != nil {
		log.Fatalf("Could not create column family %s: %v", columnFamilyName, err)
	}
}

Conectarse a Bigtable para gestionar datos

Para gestionar los datos, conéctate a Bigtable mediante bigtable.NewClient().

client, err := bigtable.NewClient(ctx, *project,