Home > Java > Access AWS Keyspace from a springboot application

Access AWS Keyspace from a springboot application

王林
Release: 2024-02-11 19:27:08
forward
1279 people have browsed it

php小编西瓜今天为大家介绍一种方法,可以让我们的Spring Boot应用程序访问AWS Keyspace。AWS Keyspace是一种托管的Apache Cassandra数据库服务,可提供高度可扩展和高度可用的存储解决方案。通过使用Spring Data Cassandra和Spring Cloud AWS,我们可以轻松地连接和操作AWS Keyspace,从而使我们的应用程序能够无缝地与这个强大的数据库服务进行交互。本文将向您展示如何配置和使用Spring Boot应用程序来访问AWS Keyspace,以及如何执行基本的CRUD操作。让我们开始吧!

问题内容

我正在尝试进行 POC 来了解如何从 springboot 应用程序连接 AWS Keyspace。我从本地桌面运行它。

我正在使用 IAM 用户 accesskey/secret 并使用 datastax 和 aws java sdk 依赖项。

application.properties

aws.accessKey=ACCESS_KEY
aws.secretKey=SECRET_KEY
aws.region=us-east-2
aws.keyspace.endPoint=cassandra.us-east-2.amazonaws.com
aws.keyspace.name=test_keyspace
Copy after login

我还使用 BasicAWSCredentials 和 AmazonKeyspaceClientBuilder 使用上述属性创建了一个 AmazonKeyspace Bean。我对此端点有疑问,无论这是否正确

但是当我运行应用程序时,它失败并出现 AllNodesFailedException。 您能让我知道如何解决这个问题吗?我不确定我是否为此遗漏了一些东西。

解决方法

要在 Java 项目中使用 Keyspace,建议您使用 software.amazon.awssdk.services.keyspaces.KeyspacesClient,这是适用于 V2 的 AWS 开发工具包。 AWS Java V1 即将被弃用:

https://aws.amazon.com/blogs/developer/announcing-end-of-support-for-aws-sdk-for-java-v1-x-on-december- 31-2025/

您需要执行几个步骤:

  1. 创建引用 JKS 文件的 application.conf 文件。见下文。

  2. 您必须创建 Cassandra Java 客户端驱动程序 (JKS) 文件。该文件是一种安全文件格式,用于保存 Java 应用程序的证书信息。这是连接到 Amazon Keyspaces 所必需的。有关更多信息,请参阅以下文档主题:https://docs。 aws.amazon.com/keyspaces/latest/devguide/using_java_driver.html

您将需要 application.conf 文件。这是内容。请注意,它引用了 JKS 文件。

datastax-java-driver {
            basic.contact-points = ["cassandra.us-east-1.amazonaws.com:9142"]
            basic.load-balancing-policy {
                class = DefaultLoadBalancingPolicy
                local-datacenter = us-east-1
                slow-replica-avoidance = false
            }
            advanced {
                auth-provider = {
                    class = software.aws.mcs.auth.SigV4AuthProvider
                    aws-region = us-east-1
                }
                ssl-engine-factory {
                    class = DefaultSslEngineFactory
                    truststore-path = "C:\\Users\\scmacdon\\KeyspaceCert\\cassandra_truststore.jks"
                    truststore-password = "11xxxxxxxx"
                    hostname-validation = false
                }
            }
        }
Copy after login

要使用 KeyspacesClient 和所需的 CqlSession 对象,请使用下面的代码。

String configFilePath = "C:\\AWS\\application.conf";
    Region region = Region.US_EAST_1;
    KeyspacesClient keyClient = KeyspacesClient.builder()
        .region(region)
        .build();
    
   DriverConfigLoader loader = DriverConfigLoader.fromFile(new File(configFilePath));
   CqlSession session = CqlSession.builder()
       .withConfigLoader(loader)
       .build();
Copy after login

要处理凭证,请参阅此处的 Java V2 开发指南:默认凭证提供程序链

您还需要一个 movies.json 文件来获取完整示例。您可以在这里找到:

https://github.com/awsdocs /aws-doc-sdk-examples/tree/main/resources/sample_files

要在 Java V2 中运行完整示例,请运行此代码。这将使您熟悉 V2 KeyspacesClient。

参见:

https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javav2/example_code/keyspaces/src/main/java/com/example/keyspace/ScenarioKeyspaces .java

请注意,此示例太大,无法在此处发布。

我刚刚运行了这个并且它有效......

The above is the detailed content of Access AWS Keyspace from a springboot application. For more information, please follow other related articles on the PHP Chinese website!

source:stackoverflow.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template