Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan driver klien Cassandra Java untuk mengakses Amazon Keyspaces secara terprogram
Bagian ini menunjukkan kepada Anda cara terhubung ke Amazon Keyspaces dengan menggunakan driver klien Java.
catatan
Java 17 dan DataStax Java Driver 4.17 saat ini hanya dalam dukungan Beta. Untuk informasi selengkapnya, lihat https://docs.datastax.com/en/developer/java-driver/4.17/upgrade_guide/
Untuk memberikan kredensyal kepada pengguna dan aplikasi untuk akses terprogram ke sumber daya Amazon Keyspaces, Anda dapat melakukan salah satu hal berikut:
-
Buat kredensyal khusus layanan yang terkait dengan pengguna AWS Identity and Access Management (IAM) tertentu.
-
Untuk keamanan yang ditingkatkan, kami sarankan untuk membuat kunci akses IAM untuk identitas IAM yang digunakan di semua layanan. AWS Plugin otentikasi Amazon Keyspaces SigV4 untuk driver klien Cassandra memungkinkan Anda untuk mengautentikasi panggilan ke Amazon Keyspaces menggunakan kunci akses IAM alih-alih nama pengguna dan kata sandi. Untuk informasi selengkapnya, lihat Membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces.
catatan
Untuk contoh cara menggunakan Amazon Keyspaces dengan Spring Boot, lihat. https://github.com/aws-samples/amazon-keyspaces-examples/tree/main/java/datastax-v4/spring
Topik
Sebelum Anda mulai
Untuk terhubung ke Amazon Keyspaces, Anda harus menyelesaikan tugas-tugas berikut sebelum dapat memulai.
Amazon Keyspaces memerlukan penggunaan Transport Layer Security (TLS) untuk membantu mengamankan koneksi dengan klien.
Unduh sertifikat digital berikut dan simpan file secara lokal atau di direktori home Anda.
AmazonRootCA1
AmazonRootCA2
AmazonRootCA3
AmazonRootCA4
Starfield Class 2 Root (opsional - untuk kompatibilitas mundur)
Untuk mengunduh sertifikat, Anda dapat menggunakan perintah berikut.
curl -O https://www.amazontrust.com/repository/AmazonRootCA1.pem curl -O https://www.amazontrust.com/repository/AmazonRootCA2.pem curl -O https://www.amazontrust.com/repository/AmazonRootCA3.pem curl -O https://www.amazontrust.com/repository/AmazonRootCA4.pem curl -O https://certs.secureserver.net/repository/sf-class2-root.crtcatatan
Amazon Keyspaces sebelumnya menggunakan sertifikat TLS yang ditambatkan ke Starfield Class 2 CA. AWS memigrasikan semua Wilayah AWS ke sertifikat yang dikeluarkan di bawah Amazon Trust Services (Amazon Root CAs 1-4). Selama transisi ini, konfigurasikan klien untuk mempercayai Amazon Root CAs 1-4 dan root Starfield untuk memastikan kompatibilitas di semua Wilayah.
Ubah sertifikat digital menjadi file TrustStore dan tambahkan ke keystore.
openssl x509 -outform der -in AmazonRootCA1.pem -out temp_file.der keytool -import -alias amazon-root-ca-1 -keystore cassandra_truststore.jks -file temp_file.der openssl x509 -outform der -in AmazonRootCA2.pem -out temp_file.der keytool -import -alias amazon-root-ca-2 -keystore cassandra_truststore.jks -file temp_file.der openssl x509 -outform der -in AmazonRootCA3.pem -out temp_file.der keytool -import -alias amazon-root-ca-3 -keystore cassandra_truststore.jks -file temp_file.der openssl x509 -outform der -in AmazonRootCA4.pem -out temp_file.der keytool -import -alias amazon-root-ca-4 -keystore cassandra_truststore.jks -file temp_file.der openssl x509 -outform der -in sf-class2-root.crt -out temp_file.der keytool -import -alias cassandra -keystore cassandra_truststore.jks -file temp_file.derPada langkah terakhir, Anda perlu membuat kata sandi untuk keystore dan mempercayai setiap sertifikat. Perintah interaktif terlihat seperti ini.
Enter keystore password: Re-enter new password: Owner: CN=Amazon Root CA 1, O=Amazon, C=US Issuer: CN=Amazon Root CA 1, O=Amazon, C=US Serial number: 66c9fcf99bf8c0a39e2f0788a43e696365bca Valid from: Tue May 26 00:00:00 UTC 2015 until: Sun Jan 17 00:00:00 UTC 2038 Certificate fingerprints: SHA1: 8D:A7:F9:65:EC:5E:FC:37:91:0F:1C:6E:59:FD:C1:CC:6A:6E:DE:16 SHA256: 8E:CD:E6:88:4F:3D:87:B1:12:5B:A3:1A:C3:FC:B1:3D:70:16:DE:7F:57:CC:90:4F:E1:CB:97:C6:AE:98:19:6E Signature algorithm name: SHA256withRSA Subject Public Key Algorithm: 2048-bit RSA key Version: 3 Extensions: #1: ObjectId: 2.5.29.19 Criticality=true BasicConstraints:[ CA:true PathLen:2147483647 ] #2: ObjectId: 2.5.29.15 Criticality=true KeyUsage [ DigitalSignature Key_CertSign Crl_Sign ] #3: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 84 18 CC 85 34 EC BC 0C 94 94 2E 08 59 9C C7 B2 ....4.......Y... 0010: 10 4E 0A 08 .N.. ] ] Trust this certificate? [no]: yes Certificate was added to keystore Enter keystore password: Owner: CN=Amazon Root CA 2, O=Amazon, C=US Issuer: CN=Amazon Root CA 2, O=Amazon, C=US Serial number: 66c9fd29635869f0a0fe58678f85b26bb8a37 Valid from: Tue May 26 00:00:00 UTC 2015 until: Sat May 26 00:00:00 UTC 2040 Certificate fingerprints: SHA1: 5A:8C:EF:45:D7:A6:98:59:76:7A:8C:8B:44:96:B5:78:CF:47:4B:1A SHA256: 1B:A5:B2:AA:8C:65:40:1A:82:96:01:18:F8:0B:EC:4F:62:30:4D:83:CE:C4:71:3A:19:C3:9C:01:1E:A4:6D:B4 Signature algorithm name: SHA384withRSA Subject Public Key Algorithm: 4096-bit RSA key Version: 3 Extensions: #1: ObjectId: 2.5.29.19 Criticality=true BasicConstraints:[ CA:true PathLen:2147483647 ] #2: ObjectId: 2.5.29.15 Criticality=true KeyUsage [ DigitalSignature Key_CertSign Crl_Sign ] #3: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: B0 0C F0 4C 30 F4 05 58 02 48 FD 33 E5 52 AF 4B ...L0..X.H.3.R.K 0010: 84 E3 66 52 ..fR ] ] Trust this certificate? [no]: yes Certificate was added to keystore Enter keystore password: Owner: CN=Amazon Root CA 3, O=Amazon, C=US Issuer: CN=Amazon Root CA 3, O=Amazon, C=US Serial number: 66c9fd5749736663f3b0b9ad9e89e7603f24a Valid from: Tue May 26 00:00:00 UTC 2015 until: Sat May 26 00:00:00 UTC 2040 Certificate fingerprints: SHA1: 0D:44:DD:8C:3C:8C:1A:1A:58:75:64:81:E9:0F:2E:2A:FF:B3:D2:6E SHA256: 18:CE:6C:FE:7B:F1:4E:60:B2:E3:47:B8:DF:E8:68:CB:31:D0:2E:BB:3A:DA:27:15:69:F5:03:43:B4:6D:B3:A4 Signature algorithm name: SHA256withECDSA Subject Public Key Algorithm: 256-bit EC (secp256r1) key Version: 3 Extensions: #1: ObjectId: 2.5.29.19 Criticality=true BasicConstraints:[ CA:true PathLen:2147483647 ] #2: ObjectId: 2.5.29.15 Criticality=true KeyUsage [ DigitalSignature Key_CertSign Crl_Sign ] #3: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: AB B6 DB D7 06 9E 37 AC 30 86 07 91 70 C7 9C C4 ......7.0...p... 0010: 19 B1 78 C0 ..x. ] ] Trust this certificate? [no]: yes Certificate was added to keystore Enter keystore password: Owner: CN=Amazon Root CA 4, O=Amazon, C=US Issuer: CN=Amazon Root CA 4, O=Amazon, C=US Serial number: 66c9fd7c1bb104c2943e5717b7b2cc81ac10e Valid from: Tue May 26 00:00:00 UTC 2015 until: Sat May 26 00:00:00 UTC 2040 Certificate fingerprints: SHA1: F6:10:84:07:D6:F8:BB:67:98:0C:C2:E2:44:C2:EB:AE:1C:EF:63:BE SHA256: E3:5D:28:41:9E:D0:20:25:CF:A6:90:38:CD:62:39:62:45:8D:A5:C6:95:FB:DE:A3:C2:2B:0B:FB:25:89:70:92 Signature algorithm name: SHA384withECDSA Subject Public Key Algorithm: 384-bit EC (secp384r1) key Version: 3 Extensions: #1: ObjectId: 2.5.29.19 Criticality=true BasicConstraints:[ CA:true PathLen:2147483647 ] #2: ObjectId: 2.5.29.15 Criticality=true KeyUsage [ DigitalSignature Key_CertSign Crl_Sign ] #3: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: D3 EC C7 3A 65 6E CC E1 DA 76 9A 56 FB 9C F3 86 ...:en...v.V.... 0010: 6D 57 E5 81 mW.. ] ] Trust this certificate? [no]: yes Certificate was added to keystore Enter keystore password: Owner: OU=Starfield Class 2 Certification Authority, O="Starfield Technologies, Inc.", C=US Issuer: OU=Starfield Class 2 Certification Authority, O="Starfield Technologies, Inc.", C=US Serial number: 0 Valid from: Tue Jun 29 17:39:16 UTC 2004 until: Thu Jun 29 17:39:16 UTC 2034 Certificate fingerprints: SHA1: AD:7E:1C:28:B0:64:EF:8F:60:03:40:20:14:C3:D0:E3:37:0E:B5:8A SHA256: 14:65:FA:20:53:97:B8:76:FA:A6:F0:A9:95:8E:55:90:E4:0F:CC:7F:AA:4F:B7:C2:C8:67:75:21:FB:5F:B6:58 Signature algorithm name: SHA1withRSA (weak) Subject Public Key Algorithm: 2048-bit RSA key Version: 3 Extensions: #1: ObjectId: 2.5.29.35 Criticality=false AuthorityKeyIdentifier [ KeyIdentifier [ 0000: BF 5F B7 D1 CE DD 1F 86 F4 5B 55 AC DC D7 10 C2 ._.......[U..... 0010: 0E A9 88 E7 .... ] [OU=Starfield Class 2 Certification Authority, O="Starfield Technologies, Inc.", C=US] SerialNumber: [ 00] ] #2: ObjectId: 2.5.29.19 Criticality=false BasicConstraints:[ CA:true PathLen:2147483647 ] #3: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: BF 5F B7 D1 CE DD 1F 86 F4 5B 55 AC DC D7 10 C2 ._.......[U..... 0010: 0E A9 88 E7 .... ] ] Warning: The input uses the SHA1withRSA signature algorithm which is considered a security risk. This algorithm will be disabled in a future update. Trust this certificate? [no]: yes Certificate was added to keystore
-
Lampirkan file TrustStore dalam argumen JVM:
-Djavax.net.ssl.trustStore=path_to_file/cassandra_truststore.jks -Djavax.net.ssl.trustStorePassword=my_password
Step-by-step tutorial untuk terhubung ke Amazon Keyspaces menggunakan driver DataStax Java untuk Apache Cassandra menggunakan kredensyal khusus layanan
step-by-stepTutorial berikut memandu Anda melalui koneksi ke Amazon Keyspaces menggunakan driver Java untuk Cassandra menggunakan kredensyal khusus layanan. Secara khusus, Anda akan menggunakan versi 4.0 dari driver DataStax Java untuk Apache Cassandra.
Langkah 1: Prasyarat
Untuk mengikuti tutorial ini, Anda perlu menghasilkan kredensyal khusus layanan dan menambahkan driver DataStax Java untuk Apache Cassandra ke proyek Java Anda.
Hasilkan kredensyal khusus layanan untuk pengguna IAM Amazon Keyspaces Anda dengan menyelesaikan langkah-langkahnya. Buat kredensil khusus layanan untuk akses terprogram ke Amazon Keyspaces Jika Anda lebih suka menggunakan kunci akses IAM untuk otentikasi, lihat. Step-by-step tutorial untuk terhubung ke Amazon Keyspaces menggunakan driver DataStax Java 4.x untuk Apache Cassandra dan plugin otentikasi SiGv4
Tambahkan driver DataStax Java untuk Apache Cassandra ke proyek Java Anda. Pastikan Anda menggunakan versi driver yang mendukung Apache Cassandra 3.11.2. Untuk informasi lebih lanjut, lihat driver DataStax Java untuk dokumentasi Apache Cassandra
.
Langkah 2: Konfigurasikan driver
Anda dapat menentukan pengaturan untuk driver DataStax Java Cassandra dengan membuat file konfigurasi untuk aplikasi Anda. File konfigurasi ini mengganti pengaturan default dan memberi tahu driver untuk terhubung ke titik akhir layanan Amazon Keyspaces menggunakan port 9142. Untuk daftar titik akhir layanan yang tersedia, lihatTitik akhir layanan untuk Amazon Keyspaces.
Buat file konfigurasi dan simpan file di folder sumber daya aplikasi—misalnya,. src/main/resources/application.conf Buka application.conf dan tambahkan pengaturan konfigurasi berikut.
Penyedia otentikasi — Buat penyedia otentikasi dengan kelas.
PlainTextAuthProviderServiceUserNamedanServicePasswordharus cocok dengan nama pengguna dan kata sandi yang Anda peroleh saat Anda membuat kredensyal khusus layanan dengan mengikuti langkah-langkah di. Buat kredensil khusus layanan untuk akses terprogram ke Amazon Keyspacescatatan
Anda dapat menggunakan kredensyal jangka pendek dengan menggunakan plugin otentikasi untuk driver DataStax Java untuk Apache Cassandra alih-alih kredensyal hardcoding di file konfigurasi driver Anda. Untuk mempelajari lebih lanjut, ikuti instruksi untukStep-by-step tutorial untuk terhubung ke Amazon Keyspaces menggunakan driver DataStax Java 4.x untuk Apache Cassandra dan plugin otentikasi SiGv4.
Pusat data lokal — Tetapkan nilai
local-datacenteruntuk Wilayah yang Anda sambungkan. Misalnya, jika aplikasi terhubung kecassandra.us-east-2.amazonaws.com, maka atur pusat data lokal keus-east-2. Untuk semua yang tersedia Wilayah AWS, lihatTitik akhir layanan untuk Amazon Keyspaces. Aturslow-replica-avoidance = falseuntuk memuat keseimbangan terhadap lebih sedikit node.SSL/TLS — Inisialisasi SSLEngine Pabrik dengan menambahkan bagian dalam file konfigurasi dengan satu baris yang menentukan kelas dengan.
class = DefaultSslEngineFactoryBerikan jalur ke file TrustStore dan kata sandi yang Anda buat sebelumnya. Amazon Keyspaces tidak mendukunghostname-validationpeer, jadi setel opsi ini ke false.
datastax-java-driver { basic.contact-points = [ "cassandra.us-east-2.amazonaws.com:9142"] advanced.auth-provider{ class = PlainTextAuthProvider username ="ServiceUserName"password ="ServicePassword"} basic.load-balancing-policy { local-datacenter ="us-east-2"slow-replica-avoidance = false } advanced.ssl-engine-factory { class = DefaultSslEngineFactory truststore-path ="./src/main/resources/cassandra_truststore.jks"truststore-password ="my_password"hostname-validation = false } }
catatan
Alih-alih menambahkan jalur ke TrustStore di file konfigurasi, Anda juga dapat menambahkan jalur TrustStore langsung di kode aplikasi atau Anda dapat menambahkan jalur ke TrustStore ke argumen JVM Anda.
Langkah 3: Jalankan aplikasi sampel
Contoh kode ini menunjukkan aplikasi baris perintah sederhana yang membuat kumpulan koneksi ke Amazon Keyspaces dengan menggunakan file konfigurasi yang kita buat sebelumnya. Ini menegaskan bahwa koneksi dibuat dengan menjalankan kueri sederhana.
package<your package>; // add the following imports to your project import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.config.DriverConfigLoader; import com.datastax.oss.driver.api.core.cql.ResultSet; import com.datastax.oss.driver.api.core.cql.Row; public class App { public static void main( String[] args ) { //Use DriverConfigLoader to load your configuration file DriverConfigLoader loader = DriverConfigLoader.fromClasspath("application.conf"); try (CqlSession session = CqlSession.builder() .withConfigLoader(loader) .build()) { ResultSet rs = session.execute("select * from system_schema.keyspaces"); Row row = rs.one(); System.out.println(row.getString("keyspace_name")); } } }
catatan
Gunakan try blok untuk membuat koneksi untuk memastikan bahwa itu selalu tertutup. Jika Anda tidak menggunakan try blok, ingatlah untuk menutup koneksi Anda untuk menghindari kebocoran sumber daya.
Step-by-step tutorial untuk terhubung ke Amazon Keyspaces menggunakan driver DataStax Java 4.x untuk Apache Cassandra dan plugin otentikasi SiGv4
Bagian berikut menjelaskan cara menggunakan plugin otentikasi SiGv4 untuk driver DataStax Java 4.x open-source untuk Apache Cassandra untuk mengakses Amazon Keyspaces (untuk Apache Cassandra). Plugin tersedia dari GitHubrepositori
Plugin otentikasi SiGv4 memungkinkan Anda menggunakan kredensyal IAM untuk pengguna atau peran saat menghubungkan ke Amazon Keyspaces. Alih-alih memerlukan nama pengguna dan kata sandi, plugin ini menandatangani permintaan API menggunakan kunci akses. Untuk informasi selengkapnya, lihat Membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces.
Langkah 1: Prasyarat
Untuk mengikuti tutorial ini, Anda harus menyelesaikan tugas-tugas berikut.
Jika Anda belum melakukannya, buat kredensyal untuk pengguna IAM Anda atau peran mengikuti langkah-langkah di. Membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces Tutorial ini mengasumsikan bahwa kunci akses disimpan sebagai variabel lingkungan. Untuk informasi selengkapnya, lihat Simpan kunci akses untuk akses terprogram.
Tambahkan driver DataStax Java untuk Apache Cassandra ke proyek Java Anda. Pastikan Anda menggunakan versi driver yang mendukung Apache Cassandra 3.11.2. Untuk informasi lebih lanjut, lihat Driver DataStax Java untuk dokumentasi Apache Cassandra
. Tambahkan plugin otentikasi ke aplikasi Anda. Plugin otentikasi mendukung versi 4.x dari driver DataStax Java untuk Apache Cassandra. Jika Anda menggunakan Apache Maven, atau sistem build yang dapat menggunakan dependensi Maven, tambahkan dependensi berikut ke file Anda.
pom.xmlpenting
Ganti versi plugin dengan versi terbaru seperti yang ditunjukkan di GitHub repositori
. <dependency> <groupId>software.aws.mcs</groupId> <artifactId>aws-sigv4-auth-cassandra-java-driver-plugin</artifactId> <version>4.0.9</version> </dependency>
Langkah 2: Konfigurasikan driver
Anda dapat menentukan pengaturan untuk driver DataStax Java Cassandra dengan membuat file konfigurasi untuk aplikasi Anda. File konfigurasi ini mengganti pengaturan default dan memberi tahu driver untuk terhubung ke titik akhir layanan Amazon Keyspaces menggunakan port 9142. Untuk daftar titik akhir layanan yang tersedia, lihatTitik akhir layanan untuk Amazon Keyspaces.
Buat file konfigurasi dan simpan file di folder sumber daya aplikasi—misalnya,. src/main/resources/application.conf Buka application.conf dan tambahkan pengaturan konfigurasi berikut.
Penyedia otentikasi - Atur
advanced.auth-provider.classke instance baru.software.aws.mcs.auth.SigV4AuthProviderSiGv4 AuthProvider adalah penangan otentikasi yang disediakan oleh plugin untuk melakukan otentikasi SiGv4.Pusat data lokal — Tetapkan nilai
local-datacenteruntuk Wilayah yang Anda sambungkan. Misalnya, jika aplikasi terhubung kecassandra.us-east-2.amazonaws.com, maka atur pusat data lokal keus-east-2. Untuk semua yang tersedia Wilayah AWS, lihatTitik akhir layanan untuk Amazon Keyspaces. Aturslow-replica-avoidance = falseuntuk memuat keseimbangan terhadap semua node yang tersedia.Idempotence - Mengatur default
idempotenceuntuk aplikasi untuk mengkonfigurasi drivertrueuntuk selalu mencoba kembali permintaan gagal. read/write/prepare/execute Ini adalah praktik terbaik untuk aplikasi terdistribusi yang membantu menangani kegagalan sementara dengan mencoba kembali permintaan yang gagal.SSL/TLS — Inisialisasi SSLEngine Pabrik dengan menambahkan bagian dalam file konfigurasi dengan satu baris yang menentukan kelas dengan.
class = DefaultSslEngineFactoryBerikan jalur ke file TrustStore dan kata sandi yang Anda buat sebelumnya. Amazon Keyspaces tidak mendukunghostname-validationpeer, jadi setel opsi ini ke false.Koneksi — Buat setidaknya 3 koneksi lokal per titik akhir dengan pengaturan
local.size = 3. Ini adalah praktik terbaik yang membantu aplikasi Anda menangani ledakan overhead dan lalu lintas. Untuk informasi selengkapnya tentang cara menghitung berapa banyak koneksi lokal per titik akhir yang dibutuhkan aplikasi Anda berdasarkan pola lalu lintas yang diharapkan, lihatCara mengonfigurasi koneksi di Amazon Keyspaces.Kebijakan coba lagi — Terapkan
AmazonKeyspacesExponentialRetryPolicykebijakan coba ulang Amazon Keyspaces alih-alih yang disertakan dengan driverDefaultRetryPolicyCassandra. Ini memungkinkan Anda untuk mengonfigurasi jumlah upaya coba lagi untukAmazonKeyspacesExponentialRetryPolicyyang memenuhi kebutuhan Anda. Secara default, jumlah percobaan ulang untukAmazonKeyspacesExponentialRetryPolicydiatur ke 3. Untuk informasi selengkapnya, lihat Cara mengonfigurasi kebijakan coba lagi untuk koneksi di Amazon Keyspaces.Pernyataan yang disiapkan - Setel
prepare-on-all-nodeske false untuk mengoptimalkan penggunaan jaringan.
datastax-java-driver { basic { contact-points = [ "cassandra.us-east-2.amazonaws.com:9142"] request { timeout = 2 seconds consistency = LOCAL_QUORUM page-size = 1024 default-idempotence = true } load-balancing-policy { local-datacenter = "us-east-2" class = DefaultLoadBalancingPolicy slow-replica-avoidance = false } } advanced { auth-provider { class = software.aws.mcs.auth.SigV4AuthProvider aws-region =us-east-2} ssl-engine-factory { class = DefaultSslEngineFactory truststore-path = "./src/main/resources/cassandra_truststore.jks" truststore-password = "my_password" hostname-validation = false } connection { connect-timeout = 5 seconds max-requests-per-connection = 512 pool { local.size = 3 } } retry-policy { class = com.aws.ssa.keyspaces.retry.AmazonKeyspacesExponentialRetryPolicy max-attempts = 3 min-wait = 10 mills max-wait = 100 mills } prepared-statements { prepare-on-all-nodes = false } } }
catatan
Alih-alih menambahkan jalur ke TrustStore di file konfigurasi, Anda juga dapat menambahkan jalur TrustStore langsung di kode aplikasi atau Anda dapat menambahkan jalur ke TrustStore ke argumen JVM Anda.
Langkah 3: Jalankan aplikasi
Contoh kode ini menunjukkan aplikasi baris perintah sederhana yang membuat kumpulan koneksi ke Amazon Keyspaces dengan menggunakan file konfigurasi yang kita buat sebelumnya. Ini menegaskan bahwa koneksi dibuat dengan menjalankan kueri sederhana.
package<your package>; // add the following imports to your project import com.datastax.oss.driver.api.core.CqlSession; import com.datastax.oss.driver.api.core.config.DriverConfigLoader; import com.datastax.oss.driver.api.core.cql.ResultSet; import com.datastax.oss.driver.api.core.cql.Row; public class App { public static void main( String[] args ) { //Use DriverConfigLoader to load your configuration file DriverConfigLoader loader = DriverConfigLoader.fromClasspath("application.conf"); try (CqlSession session = CqlSession.builder() .withConfigLoader(loader) .build()) { ResultSet rs = session.execute("select * from system_schema.keyspaces"); Row row = rs.one(); System.out.println(row.getString("keyspace_name")); } } }
catatan
Gunakan try blok untuk membuat koneksi untuk memastikan bahwa itu selalu tertutup. Jika Anda tidak menggunakan try blok, ingatlah untuk menutup koneksi Anda untuk menghindari kebocoran sumber daya.
Connect ke Amazon Keyspaces menggunakan driver DataStax Java 3.x untuk Apache Cassandra dan plugin otentikasi SiGv4
Bagian berikut menjelaskan cara menggunakan plugin otentikasi SiGv4 untuk driver DataStax Java sumber terbuka 3.x untuk Apache Cassandra untuk mengakses Amazon Keyspaces. Plugin tersedia dari GitHub repositori
Plugin otentikasi SiGv4 memungkinkan Anda menggunakan kredensyal IAM untuk pengguna dan peran saat menghubungkan ke Amazon Keyspaces. Alih-alih memerlukan nama pengguna dan kata sandi, plugin ini menandatangani permintaan API menggunakan kunci akses. Untuk informasi selengkapnya, lihat Membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces.
Langkah 1: Prasyarat
Untuk menjalankan contoh kode ini, pertama-tama Anda harus menyelesaikan tugas-tugas berikut.
Buat kredensi untuk pengguna atau peran IAM Anda mengikuti langkah-langkah di. Membuat dan mengonfigurasi AWS kredensional untuk Amazon Keyspaces Tutorial ini mengasumsikan bahwa kunci akses disimpan sebagai variabel lingkungan. Untuk informasi selengkapnya, lihat Simpan kunci akses untuk akses terprogram.
Ikuti langkah-langkah di Sebelum Anda mulai untuk mengunduh sertifikat digital, mengonversinya menjadi file TrustStore, dan melampirkan keystore dalam argumen JVM ke aplikasi Anda.
Tambahkan driver DataStax Java untuk Apache Cassandra ke proyek Java Anda. Pastikan Anda menggunakan versi driver yang mendukung Apache Cassandra 3.11.2. Untuk informasi lebih lanjut, lihat Driver DataStax Java untuk dokumentasi Apache Cassandra
. Tambahkan plugin otentikasi ke aplikasi Anda. Plugin otentikasi mendukung versi 3.x dari driver DataStax Java untuk Apache Cassandra. Jika Anda menggunakan Apache Maven, atau sistem build yang dapat menggunakan dependensi Maven, tambahkan dependensi berikut ke file Anda.
pom.xmlGanti versi plugin dengan versi terbaru seperti yang ditunjukkan di GitHub repositori. <dependency> <groupId>software.aws.mcs</groupId> <artifactId>aws-sigv4-auth-cassandra-java-driver-plugin_3</artifactId> <version>3.0.3</version> </dependency>
Langkah 2: Jalankan aplikasi
Contoh kode ini menunjukkan aplikasi baris perintah sederhana yang membuat kumpulan koneksi ke Amazon Keyspaces. Ini menegaskan bahwa koneksi dibuat dengan menjalankan kueri sederhana.
package<your package>; // add the following imports to your project import software.aws.mcs.auth.SigV4AuthProvider; import com.datastax.driver.core.Cluster; import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Row; import com.datastax.driver.core.Session; public class App { public static void main( String[] args ) { String endPoint = "cassandra.us-east-2.amazonaws.com"; int portNumber = 9142; Session session = Cluster.builder() .addContactPoint(endPoint) .withPort(portNumber) .withAuthProvider(new SigV4AuthProvider("us-east-2")) .withSSL() .build() .connect(); ResultSet rs = session.execute("select * from system_schema.keyspaces"); Row row = rs.one(); System.out.println(row.getString("keyspace_name")); } }
Catatan penggunaan:
Untuk daftar titik akhir yang tersedia, lihatTitik akhir layanan untuk Amazon Keyspaces.
Lihat repositori berikut untuk kebijakan driver Java yang bermanfaat, contoh, dan praktik terbaik saat menggunakan Driver Java dengan Amazon Keyspaces:. https://github.com/aws-samples/amazon-keyspaces-java-driver-helpers