问题标签 [amazon-dynamodb-local]

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 回答
618 浏览

java - Java 中的 AWS DynamoDB 分区键锁定实施

我在本地运行具有两个不同端口的相同应用程序。我提供的代码仅用于测试。这里 access_key 和 secret_key 将在后期从环境变量中提供。

当我在不同的端口上运行相同的应用程序时,我看到两者都能够获取 dynamodb 分区键中的锁。

这对我来说是全新的。如果我需要从 AWS 控制台在 AWS DynamoDB 中创建任何锁定机制,请需要您的支持。

下面是 AWS 控制台 DynamoDB 表快照和代码片段,我可以在其中看到日志:“获得锁!如果我死了,我的锁将在 10 秒后过期。” 来自两个正在运行的实例。根据我的要求,如果我从一个实例锁定,则另一个实例不应该获取锁,它应该提供日志“获取锁失败!”。

在 Spring Boot 中执行代码时也出现错误。AmazonDynamoDBLockClient:心跳线程收到中断,正在退出 run()(可能正在退出线程)

在此处输入图像描述

0 投票
0 回答
52 浏览

continuous-integration - DynamoDB 与 Supertest(间歇性故障)

我正在测试一个带有 CRUD 端点的小型 api 项目。我使用 supertest 运行我的所有测试来检查我的调用在本地 DynamoDB 上的所有工作。问题是,当我运行这些测试时,它们随机全部通过或失败。失败的很少是同一个,但总是只有一个。

关于发生了什么的任何想法?

0 投票
1 回答
1402 浏览

java - DynamoDB Java v2 sdk 的 QueryEnhancedRequest 中的限制方法未按预期限制

我正在使用 v2 aws DynamoDV Java sdk,并且我想限制通过分区键查询时返回的结果数量(下面的代码片段),但下面的代码返回了完整的项目集。

java文档说“注意:限制不是指要返回的项目数,而是数据库在执行查询时应该评估多少项目。在后续查询调用中使用limit与Page.lastEvaluatedKey()和exclusiveStartKey一起评估限制每次通话的项目。” 这似乎支持我所看到的行为。

但是,如何设置 DynamoDB 使用 Java 返回的匹配项的限制?在早期版本的 sdk 中有一个使用 .withMaxResultSize 方法的解决方案。

java dynamodb v2 skd 是否有类似的东西,还是我必须手动限制结果集?代码如下:

0 投票
1 回答
2170 浏览

dynamoose - 创建 shcemas 时出现 Dynamoose 问题“无法创建预先存在的表”或“无法对不存在的表执行操作”

我正在为我的 dynamodb 设计使用单一表方法。

看看这里(单表结构示例)。无需阅读所有页面。这个想法是将几种不同类型的实体存储在同一个表中。(例如,订单、产品、客户等)。

我使用 dynamoose,我有以下模式:

我使用以下内容创建表:

问题是,当我运行此代码时,我得到一个无法对不存在的表执行操作的错误。

注意:该表已创建,但也引发了错误。

但是,如果我在两次通话之间添加睡眠时间,问题就会消失。

注意:我在异步代码中运行它- 以下是完整代码)

我认为这种等待不应该存在,并且在我运行代码的环境中,使模型创建异步产生另一个错误,因为需要模式的代码是在初始化之前执行的。

希望您能够帮助我。

完整代码在这里:

所需的依赖项是:

  • 发电机:npm install dynamoose
  • 本地 dynamodb:(见此java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb -inMemory
0 投票
3 回答
1209 浏览

amazon-dynamodb-local - DynamoDB NoSQL Workbench 测试表不可见

我是 DynamoDB 的新手,使用 NoSQL Workbench 进行学习。“数据建模器”部分中有一个新的“示例”表。我在“操作生成器”部分下建立了一个新的本地连接来处理/测试“示例”表。连接已成功创建并且没有错误。但我在 Connection 部分下看不到任何表格。它说“找不到表”。我无法理解这个问题。我想,我应该看到“数据建模器”部分下可见的“示例”表。如何查看连接部分中的表格?

0 投票
2 回答
570 浏览

node.js - 更新 dynamodb 记录中的属性

我正在尝试更新我的 dynamodb 表中的现有记录。如下所示,我的桌子上有一个项目

我想执行更新。我正在使用 aws dynamodb sdk 的更新方法并传递如下参数

当一个参数丢失时,发电机会引发 ExpressionAttributeValue 丢失异常,我知道它是直的。有没有办法可以使用提供的属性更新我的项目

0 投票
0 回答
539 浏览

amazon-dynamodb - Localstack + Jest: DynamoDB throws ResourceNotFoundException on deleteTable for an existing table

I'm using localstack and awslocal to run the local AWS services inside a docker container.

Localstack is configured with a docker-compose.yml file.

Tests are written using Jest and AWS Node JS sdk for DynamoDB.

Jest fails on the last test and dymanodb sdk throws the mentioned exception:

Jest fail

I tried using the awslocal cli to replicate this issue outside of jest and the same thing happens (used official aws docs for cli command examples):

awslocal dynamodb create-table --table-name MusicCollection --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 -> works!

awslocal dynamodb list-tables -> works! Logs out the list of existing tables: {"TableNames": ["MusicCollection"]}

awslocal dynamodb delete-table --table-name MusicCollection

...and I get the same exception: An error occurred (ResourceNotFoundException) when calling the DeleteTable operation: Cannot do operations on a non-existent table

And now the best part. Even though the exception is thrown, the table gets deleted: enter image description here enter image description here

Honestly, it's hard to come up with an explanation here, but I feel that there is something simple that I'm missing! Any help is appreciated <3

UPDATE: It's not 100% confirmed yet, but in DynamoDB docs only the deleteItem is said to be idempotent, but not deleteTable which means that this could be the issue here.

0 投票
2 回答
5468 浏览

java - 无法连接到本地 DynamoDB

我无法连接到使用 cli 在本地运行的 DynamoDB。

aws dynamodb list-tables --endpoint-url http://localhost:8000

无法连接到端点 URL:“http://localhost:8000/”

这也不起作用: aws dynamodb list-tables --region local 无法连接到端点 URL:“http://localhost:8000/”

我尝试使用不同的端口,但没有帮助。我也禁用了所有代理。我可以使用这样的应用程序连接到 DynamoDB,所以我知道这不是 dynamodb 问题: aws dynamodb list-tables --endpoint-url http://dynamodb.us-west-2.amazonaws.com --region us-west-2

{“表名”:[“音乐”]}

0 投票
1 回答
382 浏览

java - DynamoDB:将 putItem 与空字符串一起使用失败

根据此处的文档,我应该能够将具有我的非键属性之一的项目作为空字符串。

我主要使用 Kotlin,但也使用 Java 进行了测试,但我无法编写空字符串。我看到以下错误:

我正在使用最新版本的 SDK,版本 2.13.55

这是Java中的一些示例代码:

0 投票
1 回答
174 浏览

amazon-dynamodb - awscli 在验证属性定义时不考虑全局二级索引

我正在尝试在创建 localstack 容器时初始化 dynamodb 表。考虑以下命令:

我收到以下错误:

我在 GSI 中使用这些,所以我想知道我在这里做错了什么?