Mit der Go-Clientbibliothek eine Verbindung zu Spanner Omni herstellen

Spanner Omni und Spanner verwenden die Go-Clientbibliothek auf ähnliche Weise. In diesem Dokument wird beschrieben, wie Sie sichere Verbindungen zu Spanner Omni herstellen, indem Sie die Go-Clientbibliothek konfigurieren. Sie stellen diese Verbindungen her, indem Sie spanner.ClientConfig konfigurieren, wenn Sie einen Datenbankverwaltungsclient oder einen Datenbankclient erstellen.

Die Go-Clientbibliothek unterstützt Nur-Text-, TLS-, TLS-mit-Anmeldedaten- und mTLS-Verbindungen.

Weitere Informationen finden Sie in der Spanner-Dokumentation unter Erste Schritte mit Spanner in Go.

Hinweis

Wenn Sie die Go-Clientbibliothek mit Spanner Omni verwenden möchten, benötigen Sie die Go-Clientbibliothek Version v1.94.0 oder höher und Go-Releaseversion 1.25 oder höher.

Führen Sie den folgenden Befehl aus, um das Spanner Go-Modul zu Ihrer go.mod-Datei hinzuzufügen:

go get cloud.google.com/go/spanner@v1.94.0

ClientConfig-Objekt konfigurieren

Wenn Sie die Go-Clientbibliothek verwenden möchten, um ein Client oder ein DatabaseAdminClient zu erstellen, konfigurieren Sie das ClientConfig-Objekt, indem Sie Type: spanner.OMNI angeben und den Endpunkt mit option.WithEndpoint() bereitstellen.

Die folgenden Beispiele zeigen, wie das ClientConfig-Objekt für jede unterstützte Sicherheitskonfiguration konfiguriert wird:

Nur-Text

Wenn Sie eine Nur-Text-Verbindung herstellen möchten, legen Sie UsePlainText in spanner.ClientConfig auf true fest:

clientConfig := spanner.ClientConfig{
  Type:         spanner.OMNI,
  UsePlainText: true,
}

adminClient, err := database.NewDatabaseAdminClientWithConfig(ctx, clientConfig,
  option.WithEndpoint("ENDPOINT"),
)
if err != nil {
  // Handle error.
}
defer adminClient.Close()

databaseClient, err := spanner.NewClientWithConfig(ctx, "DATABASE_NAME", clientConfig,
  option.WithEndpoint("ENDPOINT"),
)
if err != nil {
  // Handle error.
}
defer databaseClient.Close()

TLS

Geben Sie zum Herstellen einer TLS-Verbindung den Pfad zu Ihrem CA-Zertifikat mit CaCertificateFile an:

clientConfig := spanner.ClientConfig{
  Type:              spanner.OMNI,
  CaCertificateFile: "PATH_TO_CA_CERT",
}

adminClient, err := database.NewDatabaseAdminClientWithConfig(ctx, clientConfig,
  option.WithEndpoint("ENDPOINT"),
)
if err != nil {
  // Handle error.
}
defer adminClient.Close()

databaseClient, err := spanner.NewClientWithConfig(ctx, "DATABASE_NAME", clientConfig,
  option.WithEndpoint("ENDPOINT"),
)
if err != nil {
  // Handle error.
}
defer databaseClient.Close()

TLS mit Anmeldedaten

Wenn Sie eine TLS-Verbindung mit Nutzername und Passwortauthentifizierung herstellen möchten, geben Sie CaCertificateFile, Username und Password an:

clientConfig := spanner.ClientConfig{
  Type:              spanner.OMNI,
  CaCertificateFile: "PATH_TO_CA_CERT",
  Username:          "USERNAME",
  Password:          []byte("PASSWORD"),
}

adminClient, err := database.NewDatabaseAdminClientWithConfig(ctx, clientConfig,
  option.WithEndpoint("ENDPOINT"),
)
if err != nil {
  // Handle error.
}
defer adminClient.Close()

databaseClient, err := spanner.NewClientWithConfig(ctx, "DATABASE_NAME", clientConfig,
  option.WithEndpoint("ENDPOINT"),
)
if err != nil {
  // Handle error.
}
defer databaseClient.Close()

mTLS

Geben Sie für eine gegenseitige TLS-Verbindung (mTLS) CaCertificateFile, ClientCertificateFile und ClientKeyFile an:

clientConfig := spanner.ClientConfig{
  Type:                  spanner.OMNI,
  CaCertificateFile:     "PATH_TO_CA_CERT",
  ClientCertificateFile: "PATH_TO_CLIENT_CERT",
  ClientKeyFile:         "PATH_TO_CLIENT_KEY",
}

adminClient, err := database.NewDatabaseAdminClientWithConfig(ctx, clientConfig,
  option.WithEndpoint("ENDPOINT"),
)
if err != nil {
  // Handle error.
}
defer adminClient.Close()

databaseClient, err := spanner.NewClientWithConfig(ctx, "DATABASE_NAME", clientConfig,
  option.WithEndpoint("ENDPOINT"),
)
if err != nil {
  // Handle error.
}
defer databaseClient.Close()

Ersetzen Sie Folgendes:

  • PATH_TO_CA_CERT: der Pfad zu Ihrer CA-Zertifikatsdatei.

  • PATH_TO_CLIENT_CERT: der Pfad zu Ihrer Clientzertifikatsdatei.

  • PATH_TO_CLIENT_KEY: der Pfad zu Ihrer Clientschlüsseldatei.