Menggunakan library klien Go untuk terhubung ke Spanner Omni

Spanner Omni dan Spanner menggunakan library klien Go dengan cara yang serupa. Dokumen ini menunjukkan cara membuat koneksi yang aman ke Spanner Omni dengan mengonfigurasi library klien Go. Anda membuat koneksi ini dengan mengonfigurasi spanner.ClientConfig saat Anda membuat klien administratif database atau klien database.

Library klien Go mendukung koneksi teks biasa, TLS, TLS dengan kredensial, dan mTLS.

Untuk mengetahui informasi selengkapnya, lihat Mulai menggunakan Spanner di Go dalam dokumentasi Spanner.

Sebelum memulai

Untuk menggunakan library klien Go dengan Spanner Omni, gunakan library klien Go versi v1.94.0 atau yang lebih baru dan Go versi rilis 1.25 atau yang lebih baru.

Untuk menambahkan modul Spanner Go ke file go.mod Anda, jalankan perintah berikut:

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

Mengonfigurasi objek ClientConfig

Untuk menggunakan library klien Go guna membuat Client atau DatabaseAdminClient, konfigurasi objek ClientConfig dengan menentukan Type: spanner.OMNI dan berikan endpoint menggunakan option.WithEndpoint().

Contoh berikut menunjukkan cara mengonfigurasi objek ClientConfig untuk setiap konfigurasi keamanan yang didukung:

Teks biasa

Untuk membuat koneksi teks biasa, setel UsePlainText ke true di spanner.ClientConfig:

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

Untuk membuat koneksi TLS, tentukan jalur ke sertifikat CA Anda menggunakan CaCertificateFile:

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 dengan kredensial

Untuk membuat koneksi TLS dengan autentikasi nama pengguna dan sandi, tentukan CaCertificateFile, Username, dan Password:

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

Untuk membuat koneksi mutual TLS (mTLS), tentukan CaCertificateFile, ClientCertificateFile, dan ClientKeyFile:

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()

Ganti kode berikut:

  • PATH_TO_CA_CERT: jalur ke file sertifikat CA Anda.

  • PATH_TO_CLIENT_CERT: jalur ke file sertifikat klien Anda.

  • PATH_TO_CLIENT_KEY: jalur ke file kunci klien Anda.