Menggunakan library klien Java untuk terhubung ke Spanner Omni

Library klien Java untuk Spanner berfungsi dengan Spanner Omni dengan cara yang sama seperti cara kerjanya dengan Spanner. Dokumen ini menunjukkan cara membuat koneksi yang aman ke Spanner Omni dengan mengonfigurasi library klien Java. Anda membuat koneksi ini dengan menetapkan opsi klien saat membuat klien administratif database atau klien database.

Library klien Java mendukung koneksi teks biasa, TLS, dan mTLS.

Untuk mengetahui informasi selengkapnya, lihat Mulai menggunakan Spanner di Java dalam dokumentasi Spanner.

Sebelum memulai

Untuk mulai menggunakan Spanner Omni di Java, gunakan library klien Java versi 6.115.0 atau yang lebih baru.

Jika Anda menggunakan Maven tanpa Bill of Materials (BOM), tambahkan kode berikut ke dependensi file pom.xml:

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

Mengonfigurasi objek SpannerOptions

Saat Anda mengonfigurasi objek SpannerOptions untuk membuat DatabaseClient atau DatabaseAdminClient, tentukan endpoint Spanner Omni menggunakan setExperimentalHost().

Menggunakan komunikasi teks biasa

Untuk membuat koneksi teks biasa, tentukan endpoint Spanner Omni dan gunakan metode usePlainText():

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

Menggunakan penyiapan TLS

Saat mengonfigurasi objek SpannerOptions untuk koneksi TLS, Anda tidak perlu menetapkan properti kredensial tambahan. Anda harus menambahkan sertifikat CA ke truststore Java.

Untuk menambahkan sertifikat CA ke truststore Java, gunakan perintah berikut:

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

Atau, Anda dapat meneruskan penyimpanan sertifikat CA kustom secara langsung saat menjalankan aplikasi:

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

Untuk mempertahankan kompatibilitas, bangun truststore kustom Anda di atas truststore Java dengan membuat salinan:

cp $JAVA_HOME/lib/security/cacerts /PATH_TO_CUSTOM_CACERTS

Menggunakan penyiapan mTLS

Untuk menggunakan koneksi mTLS, konversi kunci yang dibuat oleh Spanner Omni ke format yang kompatibel dengan Java menggunakan perintah berikut:

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

Contoh berikut menunjukkan cara mengonfigurasi objek SpannerOptions untuk menggunakan sertifikat klien:

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

Membuat database

Selanjutnya, buat database. Tentukan project sebagai default jika diperlukan dalam kode library. Misalnya, tentukan default saat Anda membuat DatabaseId:

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