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.