השימוש בספריית הלקוח של Go ב-Spanner Omni וב-Spanner דומה. במסמך הזה מוסבר איך ליצור חיבורים מאובטחים ל-Spanner Omni באמצעות הגדרה של ספריית הלקוח Go. כדי ליצור את החיבורים האלה, צריך להגדיר את spanner.ClientConfig כשיוצרים לקוח אדמיניסטרטיבי של מסד נתונים או לקוח של מסד נתונים.
ספריית הלקוח Go תומכת בטקסט רגיל, ב-TLS, ב-TLS עם פרטי כניסה ובחיבורי mTLS.
מידע נוסף זמין במאמר תחילת העבודה עם Spanner ב-Go במסמכי Spanner.
לפני שמתחילים
כדי להשתמש בספריית הלקוח של Go עם Spanner Omni, צריך להשתמש בספריית הלקוח של Go בגרסה v1.94.0 ואילך ובגרסת הפצה של Go 1.25 ואילך.
כדי להוסיף את מודול Spanner Go לקובץ go.mod, מריצים את הפקודה הבאה:
go get cloud.google.com/go/spanner@v1.94.0
הגדרת האובייקט ClientConfig
כדי להשתמש בספריית הלקוח של Go כדי ליצור Client או DatabaseAdminClient, צריך להגדיר את האובייקט ClientConfig על ידי ציון Type: spanner.OMNI ולספק את נקודת הקצה באמצעות option.WithEndpoint().
בדוגמאות הבאות אפשר לראות איך להגדיר את האובייקט ClientConfig לכל אחת מהגדרות האבטחה הנתמכות:
טקסט פשוט
כדי ליצור חיבור בטקסט רגיל, מגדירים את UsePlainText לערך true ב-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
כדי ליצור חיבור TLS, מציינים את הנתיב לאישור ה-CA באמצעות 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 עם פרטי כניסה
כדי ליצור חיבור TLS עם אימות של שם משתמש וסיסמה, צריך לציין את הערכים CaCertificateFile, Username ו-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
כדי ליצור חיבור TLS הדדי (mTLS), מציינים את CaCertificateFile, ClientCertificateFile ו-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()
מחליפים את מה שכתוב בשדות הבאים:
PATH_TO_CA_CERT: הנתיב לקובץ אישור ה-CA.
PATH_TO_CLIENT_CERT: הנתיב לקובץ אישור הלקוח.
PATH_TO_CLIENT_KEY: הנתיב לקובץ המפתח של הלקוח.