Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation d'un pilote client Java Cassandra pour accéder à Amazon Keyspaces par programmation
Cette section explique comment vous connecter à Amazon Keyspaces à l'aide d'un pilote client Java.
Note
Java 17 et le pilote DataStax Java 4.17 ne sont actuellement disponibles qu'en version bêta. Pour de plus amples informations, veuillez consulter https://docs.datastax.com/en/developer/java-driver/4.17/upgrade_guide/
Pour fournir aux utilisateurs et aux applications des informations d'identification leur permettant d'accéder par programmation aux ressources Amazon Keyspaces, vous pouvez effectuer l'une des opérations suivantes :
-
Créez des informations d'identification spécifiques au service associées à un utilisateur Gestion des identités et des accès AWS (IAM) spécifique.
-
Pour renforcer la sécurité, nous vous recommandons de créer des clés d'accès IAM pour les identités IAM qui sont utilisées dans tous les AWS services. Le plug-in d'authentification Amazon Keyspaces SIGv4 pour les pilotes clients Cassandra vous permet d'authentifier les appels vers Amazon Keyspaces à l'aide de clés d'accès IAM au lieu d'un nom d'utilisateur et d'un mot de passe. Pour de plus amples informations, veuillez consulter Création et configuration des AWS informations d'identification pour Amazon Keyspaces.
Note
Pour un exemple d'utilisation d'Amazon Keyspaces avec Spring Boot, consultezhttps://github.com/aws-samples/amazon-keyspaces-examples/tree/main/java/datastax-v4/spring
Rubriques
Avant de commencer
Pour vous connecter à Amazon Keyspaces, vous devez effectuer les tâches suivantes avant de commencer.
Amazon Keyspaces nécessite l'utilisation du protocole TLS (Transport Layer Security) pour sécuriser les connexions avec les clients.
Téléchargez les certificats numériques suivants et enregistrez les fichiers localement ou dans votre répertoire personnel.
AmazonRootCA1
AmazonRootCA2
AmazonRootCA3
AmazonRootCA4
Starfield Class 2 Root (en option, pour des raisons de rétrocompatibilité)
Pour télécharger les certificats, vous pouvez utiliser les commandes suivantes.
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.crtNote
Amazon Keyspaces utilisait auparavant des certificats TLS ancrés au Starfield Class 2 CA. AWS migre tous Régions AWS vers des certificats émis dans le cadre d'Amazon Trust Services (Amazon Root CA 1 à 4). Pendant cette transition, configurez les clients pour qu'ils fassent confiance à la fois aux autorités de certification Amazon Root 1 à 4 et à la racine Starfield afin de garantir la compatibilité entre toutes les régions.
Convertissez les certificats numériques en fichiers TrustStore et ajoutez-les au 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.derDans la dernière étape, vous devez créer un mot de passe pour le keystore et faire confiance à chaque certificat. La commande interactive ressemble à ceci.
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
-
Joignez le fichier trustStore dans les arguments de la JVM :
-Djavax.net.ssl.trustStore=path_to_file/cassandra_truststore.jks -Djavax.net.ssl.trustStorePassword=my_password
Step-by-step tutoriel pour se connecter à Amazon Keyspaces à l'aide du pilote DataStax Java pour Apache Cassandra à l'aide d'informations d'identification spécifiques au service
Le didacticiel étape par étape suivant vous explique comment vous connecter à Amazon Keyspaces à l'aide d'un pilote Java pour Cassandra à l'aide d'informations d'identification spécifiques au service. Plus précisément, vous utiliserez la version 4.0 du pilote DataStax Java pour Apache Cassandra.
Rubriques
Étape 1 : Prérequis
Pour suivre ce didacticiel, vous devez générer des informations d'identification spécifiques au service et ajouter le pilote DataStax Java pour Apache Cassandra à votre projet Java.
Générez des informations d'identification spécifiques au service pour votre utilisateur Amazon Keyspaces IAM en suivant les étapes décrites dans. Créez des informations d'identification spécifiques au service pour un accès programmatique à Amazon Keyspaces Si vous préférez utiliser des clés d'accès IAM pour l'authentification, consultezStep-by-step tutoriel pour se connecter à Amazon Keyspaces à l'aide du pilote DataStax Java 4.x pour Apache Cassandra et du plug-in d'authentification Sigv4.
Ajoutez le pilote DataStax Java pour Apache Cassandra à votre projet Java. Assurez-vous que vous utilisez une version du pilote compatible avec Apache Cassandra 3.11.2. Pour plus d'informations, consultez la documentation du pilote
DataStax Java pour Apache Cassandra.
Étape 2 : Configuration du pilote
Vous pouvez spécifier les paramètres du pilote DataStax Java Cassandra en créant un fichier de configuration pour votre application. Ce fichier de configuration remplace les paramètres par défaut et demande au pilote de se connecter au point de terminaison du service Amazon Keyspaces via le port 9142. Pour obtenir la liste des points de terminaison de service disponibles, consultezPoints de terminaison de service pour Amazon Keyspaces.
Créez un fichier de configuration et enregistrez-le dans le dossier de ressources de l'application, par exemple. src/main/resources/application.conf Ouvrez application.conf et ajoutez les paramètres de configuration suivants.
Fournisseur d'authentification : créez le fournisseur d'authentification avec la
PlainTextAuthProviderclasse.ServiceUserNameetServicePassworddoit correspondre au nom d'utilisateur et au mot de passe que vous avez obtenus lorsque vous avez généré les informations d'identification spécifiques au service en suivant les étapes décrites dans. Créez des informations d'identification spécifiques au service pour un accès programmatique à Amazon KeyspacesNote
Vous pouvez utiliser des informations d'identification à court terme en utilisant le plug-in d'authentification du pilote DataStax Java pour Apache Cassandra au lieu de coder en dur les informations d'identification dans le fichier de configuration de votre pilote. Pour en savoir plus, suivez les instructions duStep-by-step tutoriel pour se connecter à Amazon Keyspaces à l'aide du pilote DataStax Java 4.x pour Apache Cassandra et du plug-in d'authentification Sigv4.
Centre de données local : définissez la valeur
local-datacenterpour la région à laquelle vous vous connectez. Par exemple, si l'application se connecte àcassandra.us-east-2.amazonaws.com, configurez le centre de données local surus-east-2. Pour tout ce qui est disponible Régions AWS, voirPoints de terminaison de service pour Amazon Keyspaces. Réglezslow-replica-avoidance = falsepour équilibrer la charge par rapport à un plus petit nombre de nœuds.SSL/TLS— Initialisez le SSLEngineFactory en ajoutant une section dans le fichier de configuration avec une seule ligne qui spécifie la classe avec
class = DefaultSslEngineFactory. Indiquez le chemin d'accès au fichier TrustStore et le mot de passe que vous avez créé précédemment. Amazon Keyspaces ne prend pas en chargehostname-validationles pairs. Définissez cette option sur 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 } }
Note
Au lieu d'ajouter le chemin du TrustStore dans le fichier de configuration, vous pouvez également ajouter le chemin du TrustStore directement dans le code de l'application ou vous pouvez ajouter le chemin du TrustStore à vos arguments JVM.
Étape 3 : Exécutez l'exemple d'application
Cet exemple de code montre une application de ligne de commande simple qui crée un pool de connexions à Amazon Keyspaces à l'aide du fichier de configuration que nous avons créé précédemment. Il confirme que la connexion est établie en exécutant une requête simple.
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")); } } }
Note
Utilisez un try bloc pour établir la connexion afin de vous assurer qu'elle est toujours fermée. Si vous n'utilisez pas de try blocage, pensez à fermer votre connexion pour éviter toute fuite de ressources.
Step-by-step tutoriel pour se connecter à Amazon Keyspaces à l'aide du pilote DataStax Java 4.x pour Apache Cassandra et du plug-in d'authentification Sigv4
La section suivante décrit comment utiliser le plug-in d'authentification Sigv4 pour le pilote DataStax Java 4.x open source pour Apache Cassandra afin d'accéder à Amazon Keyspaces (pour Apache Cassandra). Le plugin est disponible depuis le GitHub référentiel
Le plug-in d'authentification Sigv4 vous permet d'utiliser les informations d'identification IAM pour les utilisateurs ou les rôles lorsque vous vous connectez à Amazon Keyspaces. Au lieu de demander un nom d'utilisateur et un mot de passe, ce plugin signe les demandes d'API à l'aide de clés d'accès. Pour de plus amples informations, veuillez consulter Création et configuration des AWS informations d'identification pour Amazon Keyspaces.
Étape 1 : Prérequis
Pour suivre ce didacticiel, vous devez effectuer les tâches suivantes.
Si ce n'est pas déjà fait, créez des informations d'identification pour votre utilisateur ou votre rôle IAM en suivant les étapes décrites à Création et configuration des AWS informations d'identification pour Amazon Keyspaces la section. Ce didacticiel part du principe que les clés d'accès sont stockées en tant que variables d'environnement. Pour de plus amples informations, veuillez consulter Stocker les clés d'accès pour un accès programmatique.
Ajoutez le pilote DataStax Java pour Apache Cassandra à votre projet Java. Assurez-vous que vous utilisez une version du pilote compatible avec Apache Cassandra 3.11.2. Pour plus d'informations, consultez la documentation du pilote
DataStax Java pour Apache Cassandra. Ajoutez le plug-in d'authentification à votre application. Le plug-in d'authentification prend en charge la version 4.x du pilote DataStax Java pour Apache Cassandra. Si vous utilisez Apache Maven, ou un système de génération qui peut utiliser les dépendances Maven, ajoutez les dépendances suivantes à votre fichier
pom.xml.Important
Remplacez la version du plugin par la dernière version, comme indiqué dans GitHub le référentiel
. <dependency> <groupId>software.aws.mcs</groupId> <artifactId>aws-sigv4-auth-cassandra-java-driver-plugin</artifactId> <version>4.0.9</version> </dependency>
Étape 2 : Configuration du pilote
Vous pouvez spécifier les paramètres du pilote DataStax Java Cassandra en créant un fichier de configuration pour votre application. Ce fichier de configuration remplace les paramètres par défaut et demande au pilote de se connecter au point de terminaison du service Amazon Keyspaces via le port 9142. Pour obtenir la liste des points de terminaison de service disponibles, consultezPoints de terminaison de service pour Amazon Keyspaces.
Créez un fichier de configuration et enregistrez-le dans le dossier de ressources de l'application, par exemple. src/main/resources/application.conf Ouvrez application.conf et ajoutez les paramètres de configuration suivants.
Fournisseur d'authentification : définissez
advanced.auth-provider.classle sur une nouvelle instance desoftware.aws.mcs.auth.SigV4AuthProvider. SigV4AuthProvider Il s'agit du gestionnaire d'authentification fourni par le plugin pour effectuer l'authentification SIGv4.Centre de données local : définissez la valeur
local-datacenterpour la région à laquelle vous vous connectez. Par exemple, si l'application se connecte àcassandra.us-east-2.amazonaws.com, configurez le centre de données local surus-east-2. Pour tout ce qui est disponible Régions AWS, voirPoints de terminaison de service pour Amazon Keyspaces. Réglezslow-replica-avoidance = falsepour équilibrer la charge par rapport à tous les nœuds disponibles.Idempotence — Définissez la valeur par défaut
idempotencepour que l'application configure le pilote pourtruequ'il réessaie toujours les demandes échouées ou read/write échouées. prepare/execute Il s'agit d'une bonne pratique pour les applications distribuées qui permet de gérer les défaillances transitoires en réessayant les demandes ayant échoué.SSL/TLS— Initialisez le SSLEngineFactory en ajoutant une section dans le fichier de configuration avec une seule ligne qui spécifie la classe avec
class = DefaultSslEngineFactory. Indiquez le chemin d'accès au fichier TrustStore et le mot de passe que vous avez créé précédemment. Amazon Keyspaces ne prend pas en chargehostname-validationles pairs. Définissez cette option sur false.Connexions : créez au moins 3 connexions locales par point de terminaison en configurant
local.size = 3. Il s'agit d'une bonne pratique qui aide votre application à gérer les frais généraux et les pics de trafic. Pour plus d'informations sur la façon de calculer le nombre de connexions locales par point de terminaison dont votre application a besoin en fonction des modèles de trafic attendus, consultezComment configurer les connexions dans Amazon Keyspaces.Politique de nouvelle tentative : mettez en œuvre la politique de nouvelle tentative d'Amazon Keyspaces
AmazonKeyspacesExponentialRetryPolicyau lieu deDefaultRetryPolicycelle fournie avec le pilote Cassandra. Cela vous permet de configurer le nombre de nouvelles tentatives pour répondreAmazonKeyspacesExponentialRetryPolicyà vos besoins. Par défaut, le nombre de nouvelles tentatives pour leAmazonKeyspacesExponentialRetryPolicyest défini sur 3. Pour de plus amples informations, veuillez consulter Comment configurer la politique de nouvelle tentative pour les connexions dans Amazon Keyspaces.Instructions préparées : définissez sur
prepare-on-all-nodesFalse pour optimiser l'utilisation du réseau.
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 } } }
Note
Au lieu d'ajouter le chemin du TrustStore dans le fichier de configuration, vous pouvez également ajouter le chemin du TrustStore directement dans le code de l'application ou vous pouvez ajouter le chemin du TrustStore à vos arguments JVM.
Étape 3 : Exécutez l'application
Cet exemple de code montre une application de ligne de commande simple qui crée un pool de connexions à Amazon Keyspaces à l'aide du fichier de configuration que nous avons créé précédemment. Il confirme que la connexion est établie en exécutant une requête simple.
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")); } } }
Note
Utilisez un try bloc pour établir la connexion afin de vous assurer qu'elle est toujours fermée. Si vous n'utilisez pas de try blocage, pensez à fermer votre connexion pour éviter toute fuite de ressources.
Connectez-vous à Amazon Keyspaces à l'aide du pilote DataStax Java 3.x pour Apache Cassandra et du plug-in d'authentification SIGv4
La section suivante décrit comment utiliser le plug-in d'authentification Sigv4 pour le pilote DataStax Java open source 3.x pour Apache Cassandra afin d'accéder à Amazon Keyspaces. Le plugin est disponible depuis le GitHub référentiel
Le plug-in d'authentification Sigv4 vous permet d'utiliser les informations d'identification IAM pour les utilisateurs et les rôles lorsque vous vous connectez à Amazon Keyspaces. Au lieu de demander un nom d'utilisateur et un mot de passe, ce plugin signe les demandes d'API à l'aide de clés d'accès. Pour de plus amples informations, veuillez consulter Création et configuration des AWS informations d'identification pour Amazon Keyspaces.
Étape 1 : Prérequis
Pour exécuter cet exemple de code, vous devez d'abord effectuer les tâches suivantes.
Créez des informations d'identification pour votre utilisateur ou votre rôle IAM en suivant les étapes décrites àCréation et configuration des AWS informations d'identification pour Amazon Keyspaces. Ce didacticiel part du principe que les clés d'accès sont stockées en tant que variables d'environnement. Pour de plus amples informations, veuillez consulter Stocker les clés d'accès pour un accès programmatique.
Suivez les étapes décrites Avant de commencer à l'adresse pour télécharger les certificats numériques, les convertir en fichiers TrustStore et joindre le keystore dans les arguments de la JVM à votre application.
Ajoutez le pilote DataStax Java pour Apache Cassandra à votre projet Java. Assurez-vous que vous utilisez une version du pilote compatible avec Apache Cassandra 3.11.2. Pour plus d'informations, consultez la documentation du pilote
DataStax Java pour Apache Cassandra. Ajoutez le plug-in d'authentification à votre application. Le plug-in d'authentification prend en charge la version 3.x du pilote DataStax Java pour Apache Cassandra. Si vous utilisez Apache Maven, ou un système de génération qui peut utiliser les dépendances Maven, ajoutez les dépendances suivantes à votre fichier
pom.xml. Remplacez la version du plugin par la dernière version, comme indiqué dans GitHub le référentiel. <dependency> <groupId>software.aws.mcs</groupId> <artifactId>aws-sigv4-auth-cassandra-java-driver-plugin_3</artifactId> <version>3.0.3</version> </dependency>
Étape 2 : Exécutez l'application
Cet exemple de code montre une application de ligne de commande simple qui crée un pool de connexions à Amazon Keyspaces. Il confirme que la connexion est établie en exécutant une requête simple.
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")); } }
Remarques d'utilisation :
Pour obtenir la liste des points de terminaison disponibles, reportez-vous à la section Points de terminaison de service pour Amazon Keyspaces.
Consultez le référentiel suivant pour des politiques, des exemples et des meilleures pratiques utiles concernant les pilotes Java lors de l'utilisation du pilote Java avec Amazon Keyspaces :https://github.com/aws-samples/amazon-keyspaces-java-driver-helpers