问题标签 [aws-java-sdk-dynamodb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
450 浏览

amazon-dynamodb - 调用 DynamoDBMapper 的负载时出现 SocketTimeoutException

调用 DynamoDBMapper 的加载时有时会出现此错误:

我有 2 次 PUT /latest/api/token 超时,然后我得到响应。我不确定到底出了什么问题或为什么有时会出现这种行为,但这会导致我的应用程序出现延迟。

我需要修改设置中的某些内容吗?它与 DynamoMapper 有关吗?我应该使用低级 Dynamo API 吗?

0 投票
1 回答
588 浏览

spring-boot - CRUD 存储库 bean 未找到异常

我有一个连接到 AWS DynamoDB 的应用程序。我正在尝试在此应用程序中使用 Jedis 实现 Redis 连接。

但是,就在我添加此依赖项之后-

我得到这个错误 -

UserInfoRepository 实现 CrudRepository。

我不确定我错过了什么。简而言之,向此代码添加 spring-boot-starter-data-redis 依赖项会出现此错误。没有这种依赖关系,代码可以正常工作。

下面是我的其余代码。

主应用程序.java

DynamoDBConfig.java

用户信息存储库.java

GreetingController.java

用户信息.java

DBService.java

pom.xml

PS - 将 @ComponentScan("org.csulb.md.repo") 添加到主类可以解决此错误,但它无法识别其他组件,因此控制器无法工作。我尝试添加 @ComponentScan("org.csulb.md) 以及给出与描述相同的错误。我尝试在 UserInfoRepository 上添加 @Repository/@Component 并发现没有运气。

0 投票
2 回答
1752 浏览

amazon-web-services - 不使用分区键查询 DynamoDB 表的全局二级索引

我有一个带有分区键的 DynamoDB 表,userID没有排序键。该表timestamp在每个项目中也有一个属性。我想检索在指定范围内具有时间戳的所有项目(无论userIDie 跨越所有分区)。在阅读文档并搜索 Stack Overflow(此处)后,我发现我需要为我的表创建一个 GSI。因此,我使用以下键创建了一个 GSI:

  • 分区键:userID
  • 排序键:timestamp

我正在使用以下代码使用 Java SDK 查询索引:

执行此代码时出现以下错误:

据我所知,我应该能够仅使用排序键来查询 GSI,而无需对分区键提供任何条件。请帮助我了解我的实施有什么问题。谢谢。

编辑:阅读此处的线程后,事实证明我们无法查询只有排序键范围的 GSI。那么,如果有的话,通过对属性的范围查询来查询整个表的替代方法是什么?我在该线程中发现的一个建议是使用 year 作为分区键。如果所需的范围跨越多年,这将需要多次查询。此外,这不会将数据均匀地分布在所有分区中,因为只有与当前年份对应的分区将用于插入一整年。请提出任何替代方案。

0 投票
1 回答
622 浏览

java - 使用 Java SDK 2 查询超过 100 个与分区键匹配的 DynamoDB 项目?

如何使用 aws java sdk 2 查询 dynamodb 表中匹配特定分区键的 100 多个项目?

如果匹配哈希键的行数超过 100,则需要使用 batchGetItemPaginator 方法。此方法接受BatchGetItemRequest需要 a 的 a KeysAndAttributes

当我仅使用哈希键而不是排序键构造 KeysAndAttributes 时,出现以下异常

DynamoDbException:提供的关键元素与架构不匹配

但是,如果我在 KeysAndAttributes 中提供排序键,则 batchGetItemPaginator 方法可以正常工作。

那么如何使用主键(无排序键)构造 BatchGetItemRequest 呢?

注意:我的问题不是这个问题的重复。如果行数超过 100,则其他问题不涉及所需的分页。

预先感谢您的考虑和回复。

0 投票
1 回答
1910 浏览

amazon-web-services - DynamoDBMapper 和 Table for DynamoDB 表有什么区别

在 AWS DynamoDB 中,有两个选项可用于对表执行 CRUD 操作。

DynamoDBMapper:。 com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper;_

表: com.amazonaws.services.dynamodbv2.document.Table;

两者似乎都执行相同的操作。

DynamoDBMapperTable之上的一层吗?如果是这样,使用它们有什么区别?

0 投票
1 回答
117 浏览

asp.net - Upload Files To S3 from Browser and Secure AWS Creds

i am developing a small application in ASP.net MVC ,in which i am uploading file to s3 directly from browser ,below is my code , but the problem is since it is in JavaScript my Access key and Secret key is expose , is there any way i can hide it or is there any other way of uploading file to s3 without exposing Access key and Secret key and i have to upload the file from browser only.

0 投票
0 回答
34 浏览

amazon-web-services - DDB Raw AttributeValue 映射到 Object 之间的映射

我正在尝试将 DynamoDb 的原始数据Map<String, AttributeValue>转换为使用适当的 DynamoDbMapper 注释 ( @DynamoDBHashKey, @DynamoDBRangeKey) 注释的 Object 类。我知道DynamoDbMapper支持marshallIntoObject方法,但我试图在不构建 AmazonDynamoDb 客户端和整个 Mapper 的情况下实现这一点,它提供对其他方法的访问,例如savedelete

我看不出为什么我们需要 DynamoDb 客户端来实现从Map<String, AttributeValue>对象类的简单转换。

想知道是否有一个隐藏的库或转换器可以在不构建整个 DynamoDbMapper 的情况下使用。

0 投票
0 回答
88 浏览

spring-boot - 使用 DynamoDBEnhancedAsyncClient 扫描和获取 futureObject

我正在尝试使用 v2 库以非阻塞方式持久化和检索数据。DynamoDBEnhancedAsyncClient的 Put 方法返回 CompletableFuture 对象,但扫描和查询方法返回 PagePublisher 对象——这往往告诉我这是一个阻塞调用。有人可以帮我理解/解决这个问题。我想实现端到端的非阻塞调用。我尝试使用DynamoAsyncClient并且效果很好,但我想摆脱使用DynamoDBEnhancedAsyncClient * 手动映射对象,但我没有看到返回 CompletableFutures 的方法。

这是我的代码块

我使用的依赖项

0 投票
1 回答
28 浏览

java-8 - 无法转换地图(DynamoDB) 到 POJO,如果使用注释 @Builder

我正在尝试将 Map<String, AttributeValue> 转换为 POJO。我这样做:


@Data - 来自 Lombok 的注释。它工作正常。

但是如果我添加注释@Builder,我会得到异常

我该如何解决这个问题?谢谢你。

0 投票
1 回答
33 浏览

spring-webflux - 使用 DynamoDb 将 CompletableFuture 包装到 Mono

我知道 java DynamoDB 的 SDK 被认为是异步非阻塞的,但我的问题是:

:发电机更新是否仍然需要在另一个线程上使用 operator publishOn才能在反应性上下文中更安全?

Mono.fromFuture(table.update()).publishOn();