Spanner 的 Java 用戶端程式庫與 Spanner Omni 的運作方式,與其與 Spanner 的運作方式相同。本文說明如何設定 Java 用戶端程式庫,建立與 Spanner Omni 的安全連線。建立資料庫管理用戶端或資料庫用戶端時,您可以設定用戶端選項來建立這些連線。
Java 用戶端程式庫支援純文字、TLS 和 mTLS 連線。
詳情請參閱 Spanner 說明文件中的「開始使用 Java 版 Spanner」。
事前準備
如要在 Java 中開始使用 Spanner Omni,請使用 6.115.0 以上版本的 Java 用戶端程式庫。
如果您使用 Maven 而不使用物料清單 (BOM),請將下列指令新增至 pom.xml 檔案依附元件:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-spanner</artifactId>
<version>6.115.0</version>
</dependency>
設定 SpannerOptions 物件
設定 SpannerOptions 物件來建立 DatabaseClient 或 DatabaseAdminClient 時,請使用 setExperimentalHost() 指定 Spanner Omni 端點。
使用純文字通訊
如要建立純文字連線,請指定 Spanner Omni 端點並使用 usePlainText() 方法:
SpannerOptions options =
SpannerOptions.newBuilder()
.setExperimentalHost("http://ENDPOINT") // Replace with your Spanner Omni endpoint
.usePlainText()
.build();
Spanner spanner = options.getService();
使用 TLS 設定
為 TLS 連線設定 SpannerOptions 物件時,您不需要設定任何其他憑證屬性。您必須將 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。舉例來說,建立 DatabaseId 時,請指定 default:
DatabaseId dbId = DatabaseId.of("default", "default", DATABASE_ID);
DatabaseClient client = spanner.getDatabaseClient(dbId);