שימוש בספריית הלקוח של Java כדי להתחבר ל-Spanner Omni

ספריית הלקוח של Java ל-Spanner פועלת עם Spanner Omni באותו אופן שבו היא פועלת עם Spanner. במאמר הזה נסביר איך להגדיר את ספריית הלקוח של Java כדי ליצור חיבורים מאובטחים ל-Spanner Omni. כדי ליצור את החיבורים האלה, צריך להגדיר אפשרויות לקוח כשיוצרים לקוח ניהול של מסד נתונים או לקוח של מסד נתונים.

ספריית הלקוח Java תומכת בחיבורים של טקסט פשוט, TLS ו-mTLS.

מידע נוסף זמין במאמר תחילת העבודה עם Spanner ב-Java במסמכי Spanner.

לפני שמתחילים

כדי להתחיל להשתמש ב-Spanner Omni ב-Java, צריך להשתמש בספריית הלקוח של Java בגרסה 6.115.0 ואילך.

אם משתמשים ב-Maven בלי Bill of Materials (BOM), צריך להוסיף את הקוד הבא ליחסי התלות בקובץ pom.xml:

<dependency>
  <groupId>com.google.cloud</groupId>
  <artifactId>google-cloud-spanner</artifactId>
  <version>6.115.0</version>
</dependency>

הגדרת האובייקט SpannerOptions

כשמגדירים את האובייקט SpannerOptions כדי ליצור DatabaseClient או DatabaseAdminClient, צריך לציין את נקודת הקצה של Spanner Omni באמצעות setExperimentalHost().

שימוש בתקשורת בטקסט פשוט

כדי ליצור חיבור בטקסט פשוט, מציינים את נקודת הקצה של Spanner Omni ומשתמשים בשיטה usePlainText():

SpannerOptions options =
    SpannerOptions.newBuilder()
        .setExperimentalHost("http://ENDPOINT") // Replace with your Spanner Omni endpoint
        .usePlainText()
        .build();
Spanner spanner = options.getService();

שימוש בהגדרת TLS

כשמגדירים את האובייקט SpannerOptions לחיבור TLS, אין צורך להגדיר מאפייני פרטי כניסה נוספים. צריך להוסיף את אישור ה-CA למאגר האישורים המהימנים של Java.

כדי להוסיף את אישור ה-CA למאגר האישורים המהימנים של Java, משתמשים בפקודה הבאה:

sudo keytool -import -trustcacerts -file /.spanner/certs/ca.crt -alias spanner-ca -keystore $JAVA_HOME/lib/security/cacerts

לחלופין, אפשר להעביר מאגר אישורי CA מותאם אישית ישירות כשמריצים את האפליקציה:

java -Djavax.net.ssl.trustStore=PATH_TO_CUSTOM_CACERTS -Djavax.net.ssl.trustStorePassword=changeit app

כדי לשמור על תאימות, צריך לבנות את מאגר האישורים המותאם אישית על בסיס מאגר האישורים של Java על ידי יצירת עותק:

cp $JAVA_HOME/lib/security/cacerts /PATH_TO_CUSTOM_CACERTS

שימוש בהגדרת mTLS

כדי להשתמש בחיבור mTLS, צריך להמיר את המפתח שנוצר על ידי Spanner Omni לפורמט שתואם ל-Java באמצעות הפקודה הבאה:

openssl pkcs8 -topk8 -in ~/.spanner/certs/client.key -out ~/.spanner/certs/java-client.key -nocrypt

בדוגמה הבאה מוצג אובייקט SpannerOptions שהוגדר לשימוש באישור לקוח:

   SpannerOptions options =
        SpannerOptions.newBuilder()
           .setExperimentalHost("https://ENDPOINT") // Replace with your Spanner Omni endpoint
.useClientCert("PATH_TO_CLIENT_CERT","PATH_TO_CLIENT_CERT_KEY")
.build();
   Spanner spanner = options.getService();

יצירת מסד הנתונים

לאחר מכן, יוצרים את מסד הנתונים. מציינים את הפרויקט כ-default במקומות שנדרש בקוד של הספרייה. לדוגמה, מציינים default כשיוצרים DatabaseId:

DatabaseId dbId = DatabaseId.of("default", "default", DATABASE_ID);
DatabaseClient client = spanner.getDatabaseClient(dbId);