Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Utilizzo di un driver client Java Cassandra per accedere ad Amazon Keyspaces a livello di programmazione
Questa sezione mostra come connettersi ad Amazon Keyspaces utilizzando un driver client Java.
Nota
Java 17 e DataStax Java Driver 4.17 sono attualmente supportati solo in versione beta. Per ulteriori informazioni, consulta https://docs.datastax.com/en/developer/java-driver/4.17/upgrade_guide/
Per fornire agli utenti e alle applicazioni le credenziali per l'accesso programmatico alle risorse Amazon Keyspaces, puoi effettuare una delle seguenti operazioni:
-
Crea credenziali specifiche del servizio associate a un utente specifico (IAM). AWS Identity and Access Management
-
Per una maggiore sicurezza, consigliamo di creare chiavi di accesso IAM per le identità IAM utilizzate in tutti i servizi. AWS Il plug-in di autenticazione Amazon Keyspaces Sigv4 per i driver client Cassandra consente di autenticare le chiamate ad Amazon Keyspaces utilizzando le chiavi di accesso IAM anziché il nome utente e la password. Per ulteriori informazioni, consulta Crea e configura AWS credenziali per Amazon Keyspaces.
Nota
Per un esempio di come utilizzare Amazon Keyspaces con Spring Boot, consulta. https://github.com/aws-samples/amazon-keyspaces-examples/tree/main/java/datastax-v4/spring
Argomenti
Prima di iniziare
Per connetterti ad Amazon Keyspaces, devi completare le seguenti attività prima di poter iniziare.
Amazon Keyspaces richiede l'uso di Transport Layer Security (TLS) per aiutare a proteggere le connessioni con i client.
Scarica i seguenti certificati digitali e salva i file localmente o nella tua home directory.
AmazonRootCA1
AmazonRootCA2
AmazonRootCA3
AmazonRootCA4
Starfield Class 2 Root (opzionale, per la compatibilità con le versioni precedenti)
Per scaricare i certificati, puoi usare i seguenti comandi.
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.crtNota
Amazon Keyspaces utilizzava in precedenza certificati TLS ancorati alla CA Starfield Class 2. AWS sta migrando tutti i certificati emessi nell'ambito Regioni AWS di Amazon Trust Services (Amazon Root CAS 1—4). Durante questa transizione, configura i clienti in modo che si fidino sia di Amazon Root CAS 1—4 che di Starfield root per garantire la compatibilità in tutte le regioni.
Converti i certificati digitali in file TrustStore e aggiungili al 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.derNell'ultimo passaggio, devi creare una password per il keystore e considerare attendibile ogni certificato. Il comando interattivo ha il seguente aspetto.
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
-
Allega il file TrustStore negli argomenti della JVM:
-Djavax.net.ssl.trustStore=path_to_file/cassandra_truststore.jks -Djavax.net.ssl.trustStorePassword=my_password
Step-by-step tutorial per connettersi ad Amazon Keyspaces utilizzando il driver DataStax Java per Apache Cassandra utilizzando credenziali specifiche del servizio
Il seguente tutorial dettagliato illustra come connettersi ad Amazon Keyspaces utilizzando un driver Java per Cassandra utilizzando credenziali specifiche del servizio. In particolare, utilizzerai la versione 4.0 del driver Java per Apache Cassandra. DataStax
Fase 1: prerequisiti
Per seguire questo tutorial, è necessario generare credenziali specifiche del servizio e aggiungere il driver DataStax Java per Apache Cassandra al progetto Java.
Genera credenziali specifiche del servizio per il tuo utente IAM di Amazon Keyspaces completando i passaggi in. Crea credenziali specifiche del servizio per l'accesso programmatico ad Amazon Keyspaces Se preferisci utilizzare le chiavi di accesso IAM per l'autenticazione, consulta. Step-by-step tutorial per connettersi ad Amazon Keyspaces utilizzando il driver DataStax Java 4.x per Apache Cassandra e il plug-in di autenticazione SigV4
Aggiungi il driver DataStax Java per Apache Cassandra al tuo progetto Java. Assicurati di utilizzare una versione del driver che supporti Apache Cassandra 3.11.2. Per ulteriori informazioni, consultate la documentazione del driver DataStax Java per Apache Cassandra.
Fase 2: Configurare il driver
È possibile specificare le impostazioni per il driver DataStax Java Cassandra creando un file di configurazione per l'applicazione. Questo file di configurazione sovrascrive le impostazioni predefinite e indica al driver di connettersi all'endpoint del servizio Amazon Keyspaces utilizzando la porta 9142. Per un elenco degli endpoint di servizio disponibili, consulta. Endpoint di servizio per Amazon Keyspaces
Crea un file di configurazione e salva il file nella cartella delle risorse dell'applicazione, ad esempio. src/main/resources/application.conf Apri application.conf e aggiungi le seguenti impostazioni di configurazione.
Provider di autenticazione: crea il provider di autenticazione con la
PlainTextAuthProviderclasse.ServiceUserNameeServicePassworddeve corrispondere al nome utente e alla password ottenuti al momento della generazione delle credenziali specifiche del servizio seguendo i passaggi indicati. Crea credenziali specifiche del servizio per l'accesso programmatico ad Amazon KeyspacesNota
È possibile utilizzare credenziali a breve termine utilizzando il plug-in di autenticazione per il driver DataStax Java per Apache Cassandra anziché codificare le credenziali nel file di configurazione del driver. Per saperne di più, segui le istruzioni per. Step-by-step tutorial per connettersi ad Amazon Keyspaces utilizzando il driver DataStax Java 4.x per Apache Cassandra e il plug-in di autenticazione SigV4
Data center locale: imposta il valore per la regione
local-datacentera cui ti stai connettendo. Ad esempio, se l'applicazione si sta connettendocassandra.us-east-2.amazonaws.com, imposta il data center locale suus-east-2. Per tutte le informazioni disponibili Regioni AWS, vedereEndpoint di servizio per Amazon Keyspaces. Impostatoslow-replica-avoidance = falseper bilanciare il carico rispetto a un numero inferiore di nodi.SSL/TLS— Inizializza SSLEngineFactory aggiungendo una sezione nel file di configurazione con una sola riga che specifichi la classe con.
class = DefaultSslEngineFactoryFornisci il percorso del file TrustStore e la password che hai creato in precedenza. Amazon Keyspaces non supportahostname-validationi peer, quindi imposta questa opzione su 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 } }
Nota
Invece di aggiungere il percorso al TrustStore nel file di configurazione, puoi anche aggiungere il percorso al TrustStore direttamente nel codice dell'applicazione oppure puoi aggiungere il percorso al TrustStore ai tuoi argomenti JVM.
Fase 3: Esegui l'applicazione di esempio
Questo esempio di codice mostra una semplice applicazione a riga di comando che crea un pool di connessioni ad Amazon Keyspaces utilizzando il file di configurazione creato in precedenza. Conferma che la connessione viene stabilita eseguendo una semplice query.
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")); } } }
Nota
Usa un try blocco per stabilire la connessione per assicurarti che sia sempre chiusa. Se non utilizzi un try blocco, ricordati di chiudere la connessione per evitare perdite di risorse.
Step-by-step tutorial per connettersi ad Amazon Keyspaces utilizzando il driver DataStax Java 4.x per Apache Cassandra e il plug-in di autenticazione SigV4
La sezione seguente descrive come utilizzare il plug-in di autenticazione SIGv4 per il driver DataStax Java 4.x open source per Apache Cassandra per accedere ad Amazon Keyspaces (per Apache Cassandra). Il plugin è disponibile nel repository. GitHub
Il plug-in di autenticazione SIGv4 consente di utilizzare le credenziali IAM per utenti o ruoli durante la connessione ad Amazon Keyspaces. Invece di richiedere un nome utente e una password, questo plugin firma le richieste API utilizzando chiavi di accesso. Per ulteriori informazioni, consulta Crea e configura AWS credenziali per Amazon Keyspaces.
Fase 1: prerequisiti
Per seguire questo tutorial, devi completare le seguenti attività.
Se non l'hai già fatto, crea le credenziali per il tuo utente o ruolo IAM seguendo i passaggi indicati inCrea e configura AWS credenziali per Amazon Keyspaces. Questo tutorial presuppone che le chiavi di accesso siano memorizzate come variabili di ambiente. Per ulteriori informazioni, consulta Memorizza le chiavi di accesso per l'accesso programmatico.
Aggiungete il driver DataStax Java per Apache Cassandra al vostro progetto Java. Assicurati di utilizzare una versione del driver che supporti Apache Cassandra 3.11.2. Per ulteriori informazioni, consultate la documentazione del driver DataStax Java per Apache Cassandra.
Aggiungi il plug-in di autenticazione alla tua applicazione. Il plugin di autenticazione supporta la versione 4.x del driver DataStax Java per Apache Cassandra. Se stai usando Apache Maven o un sistema di compilazione che può utilizzare le dipendenze Maven, aggiungi le seguenti dipendenze al tuo file.
pom.xmlImportante
Sostituisci la versione del plugin con la versione più recente, come mostrato nel repository. GitHub
<dependency> <groupId>software.aws.mcs</groupId> <artifactId>aws-sigv4-auth-cassandra-java-driver-plugin</artifactId> <version>4.0.9</version> </dependency>
Fase 2: Configurare il driver
È possibile specificare le impostazioni per il driver DataStax Java Cassandra creando un file di configurazione per l'applicazione. Questo file di configurazione sovrascrive le impostazioni predefinite e indica al driver di connettersi all'endpoint del servizio Amazon Keyspaces utilizzando la porta 9142. Per un elenco degli endpoint di servizio disponibili, consulta. Endpoint di servizio per Amazon Keyspaces
Crea un file di configurazione e salva il file nella cartella delle risorse dell'applicazione, ad esempio. src/main/resources/application.conf Apri application.conf e aggiungi le seguenti impostazioni di configurazione.
Provider di autenticazione: imposta una nuova istanza di
software.aws.mcs.auth.SigV4AuthProvider.advanced.auth-provider.classSigV4AuthProvider È il gestore di autenticazione fornito dal plug-in per eseguire l'autenticazione SIGv4.Data center locale: imposta il valore per la regione
local-datacentera cui ti stai connettendo. Ad esempio, se l'applicazione si sta connettendocassandra.us-east-2.amazonaws.com, imposta il data center locale suus-east-2. Per tutte le informazioni disponibili Regioni AWS, vedereEndpoint di servizio per Amazon Keyspaces. Impostaslow-replica-avoidance = falseil bilanciamento del carico rispetto a tutti i nodi disponibili.Idempotenza: imposta l'impostazione predefinita
idempotenceper l'applicazione in modo da configurare il driver in modotrueda riprovare sempre le richieste non riuscite. read/write prepare/execute Si tratta di una procedura consigliata per le applicazioni distribuite che consente di gestire gli errori transitori ritentando le richieste non riuscite.SSL/TLS— Inizializza SSLEngineFactory aggiungendo una sezione nel file di configurazione con una sola riga che specifichi la classe con.
class = DefaultSslEngineFactoryFornisci il percorso del file TrustStore e la password che hai creato in precedenza. Amazon Keyspaces non supportahostname-validationi peer, quindi imposta questa opzione su false.Connessioni: crea almeno 3 connessioni locali per endpoint impostando.
local.size = 3Si tratta di una procedura consigliata che aiuta l'applicazione a gestire le spese generali e le interruzioni di traffico. Per ulteriori informazioni su come calcolare il numero di connessioni locali per endpoint necessarie all'applicazione in base ai modelli di traffico previsti, consulta. Come configurare le connessioni in Amazon KeyspacesPolitica sui tentativi: implementa la politica sui tentativi di Amazon Keyspaces
AmazonKeyspacesExponentialRetryPolicyanzichéDefaultRetryPolicyquella fornita con il driver Cassandra. Ciò ti consente di configurare il numero di tentativi di nuovo tentativo in base alleAmazonKeyspacesExponentialRetryPolicytue esigenze. Per impostazione predefinita, il numero di tentativi di nuovo per ilAmazonKeyspacesExponentialRetryPolicyè impostato su 3. Per ulteriori informazioni, consulta Come configurare la politica dei tentativi di ripetizione per le connessioni in Amazon Keyspaces.Dichiarazioni preparate: impostate su false
prepare-on-all-nodesper ottimizzare l'utilizzo della rete.
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 } } }
Nota
Invece di aggiungere il percorso al TrustStore nel file di configurazione, puoi anche aggiungere il percorso al TrustStore direttamente nel codice dell'applicazione oppure puoi aggiungere il percorso al TrustStore agli argomenti della JVM.
Fase 3: Esegui l'applicazione
Questo esempio di codice mostra una semplice applicazione a riga di comando che crea un pool di connessioni ad Amazon Keyspaces utilizzando il file di configurazione creato in precedenza. Conferma che la connessione viene stabilita eseguendo una semplice query.
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")); } } }
Nota
Usa un try blocco per stabilire la connessione per assicurarti che sia sempre chiusa. Se non utilizzi un try blocco, ricordati di chiudere la connessione per evitare perdite di risorse.
Connettiti ad Amazon Keyspaces utilizzando il driver DataStax Java 3.x per Apache Cassandra e il plug-in di autenticazione SigV4
La sezione seguente descrive come utilizzare il plug-in di autenticazione SigV4 per il driver DataStax Java open source 3.x per Apache Cassandra per accedere ad Amazon Keyspaces. Il plugin è disponibile nel repository. GitHub
Il plug-in di autenticazione SIGv4 consente di utilizzare le credenziali IAM per utenti e ruoli durante la connessione ad Amazon Keyspaces. Invece di richiedere un nome utente e una password, questo plugin firma le richieste API utilizzando chiavi di accesso. Per ulteriori informazioni, consulta Crea e configura AWS credenziali per Amazon Keyspaces.
Fase 1: prerequisiti
Per eseguire questo esempio di codice, devi prima completare le seguenti attività.
Crea le credenziali per il tuo utente o ruolo IAM seguendo i passaggi indicati inCrea e configura AWS credenziali per Amazon Keyspaces. Questo tutorial presuppone che le chiavi di accesso siano archiviate come variabili di ambiente. Per ulteriori informazioni, consulta Memorizza le chiavi di accesso per l'accesso programmatico.
Segui i passaggi indicati Prima di iniziare per scaricare i certificati digitali, convertirli in file TrustStore e allegare il keystore negli argomenti JVM alla tua applicazione.
Aggiungete il driver DataStax Java per Apache Cassandra al vostro progetto Java. Assicurati di utilizzare una versione del driver che supporti Apache Cassandra 3.11.2. Per ulteriori informazioni, consultate la documentazione del driver DataStax Java per Apache Cassandra.
Aggiungi il plug-in di autenticazione alla tua applicazione. Il plugin di autenticazione supporta la versione 3.x del driver DataStax Java per Apache Cassandra. Se stai usando Apache Maven o un sistema di compilazione che può utilizzare le dipendenze Maven, aggiungi le seguenti dipendenze al tuo file.
pom.xmlSostituisci la versione del plugin con la versione più recente, come mostrato nel repository. GitHub<dependency> <groupId>software.aws.mcs</groupId> <artifactId>aws-sigv4-auth-cassandra-java-driver-plugin_3</artifactId> <version>3.0.3</version> </dependency>
Fase 2: Esegui l'applicazione
Questo esempio di codice mostra una semplice applicazione a riga di comando che crea un pool di connessioni ad Amazon Keyspaces. Conferma che la connessione viene stabilita eseguendo una semplice query.
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")); } }
Note sull'uso:
Per un elenco degli endpoint disponibili, vedereEndpoint di servizio per Amazon Keyspaces.
Consulta il seguente repository per utili politiche, esempi e best practice sui driver Java per l'utilizzo del driver Java con Amazon Keyspaces:. https://github.com/aws-samples/amazon-keyspaces-java-driver-helpers