Mit der Java-Clientbibliothek eine Verbindung zu Spanner Omni herstellen

Die Java-Clientbibliothek für Spanner funktioniert mit Spanner Omni genauso wie mit Spanner. In diesem Dokument wird beschrieben, wie Sie sichere Verbindungen zu Spanner Omni herstellen, indem Sie die Java-Clientbibliothek konfigurieren. Sie stellen diese Verbindungen her, indem Sie Clientoptionen festlegen, wenn Sie einen Datenbankverwaltungsclient oder einen Datenbankclient erstellen.

Die Java-Clientbibliothek unterstützt Nur-Text-, TLS- und mTLS-Verbindungen.

Weitere Informationen finden Sie in der Spanner-Dokumentation unter Erste Schritte mit Spanner in Java.

Hinweis

Wenn Sie mit Spanner Omni in Java beginnen möchten, verwenden Sie die Java-Clientbibliothek in Version 6.115.0 oder höher.

Wenn Sie Maven ohne die Materialliste (Bill of Materials, BOM) verwenden, fügen Sie den Abhängigkeiten der Datei pom.xml Folgendes hinzu:

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

SpannerOptions-Objekt konfigurieren

Wenn Sie das Objekt SpannerOptions konfigurieren, um ein DatabaseClient oder DatabaseAdminClient zu erstellen, geben Sie den Spanner Omni-Endpunkt mit setExperimentalHost() an.

Reinen Text verwenden

Wenn Sie eine Nur-Text-Verbindung herstellen möchten, geben Sie den Spanner Omni-Endpunkt an und verwenden Sie die Methode usePlainText():

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

TLS-Einrichtung verwenden

Wenn Sie das SpannerOptions-Objekt für eine TLS-Verbindung konfigurieren, müssen Sie keine zusätzlichen Anmeldedaten festlegen. Sie müssen das CA-Zertifikat dem Java-Truststore hinzufügen.

Verwenden Sie den folgenden Befehl, um das CA-Zertifikat dem Java-Truststore hinzuzufügen:

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

Alternativ können Sie einen benutzerdefinierten CA-Zertifikatspeicher direkt beim Ausführen der Anwendung übergeben:

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

Um die Kompatibilität aufrechtzuerhalten, erstellen Sie Ihren benutzerdefinierten Truststore auf Grundlage des Java-Truststores, indem Sie eine Kopie erstellen:

cp $JAVA_HOME/lib/security/cacerts /PATH_TO_CUSTOM_CACERTS

mTLS-Einrichtung verwenden

Wenn Sie eine mTLS-Verbindung verwenden möchten, konvertieren Sie den von Spanner Omni generierten Schlüssel mit dem folgenden Befehl in ein mit Java kompatibles Format:

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

Das folgende Beispiel zeigt, wie das SpannerOptions-Objekt für die Verwendung eines Clientzertifikats konfiguriert wird:

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

Datenbank erstellen

Erstellen Sie als Nächstes die Datenbank. Geben Sie das Projekt bei Bedarf im Bibliothekscode als default an. Geben Sie beispielsweise default an, wenn Sie ein DatabaseId erstellen:

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