问题标签 [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.
java - Java 中的 AWS DynamoDB 分区键锁定实施
我在本地运行具有两个不同端口的相同应用程序。我提供的代码仅用于测试。这里 access_key 和 secret_key 将在后期从环境变量中提供。
当我在不同的端口上运行相同的应用程序时,我看到两者都能够获取 dynamodb 分区键中的锁。
这对我来说是全新的。如果我需要从 AWS 控制台在 AWS DynamoDB 中创建任何锁定机制,请需要您的支持。
下面是 AWS 控制台 DynamoDB 表快照和代码片段,我可以在其中看到日志:“获得锁!如果我死了,我的锁将在 10 秒后过期。” 来自两个正在运行的实例。根据我的要求,如果我从一个实例锁定,则另一个实例不应该获取锁,它应该提供日志“获取锁失败!”。
在 Spring Boot 中执行代码时也出现错误。AmazonDynamoDBLockClient:心跳线程收到中断,正在退出 run()(可能正在退出线程)
continuous-integration - DynamoDB 与 Supertest(间歇性故障)
我正在测试一个带有 CRUD 端点的小型 api 项目。我使用 supertest 运行我的所有测试来检查我的调用在本地 DynamoDB 上的所有工作。问题是,当我运行这些测试时,它们随机全部通过或失败。失败的很少是同一个,但总是只有一个。
关于发生了什么的任何想法?
java - DynamoDB Java v2 sdk 的 QueryEnhancedRequest 中的限制方法未按预期限制
我正在使用 v2 aws DynamoDV Java sdk,并且我想限制通过分区键查询时返回的结果数量(下面的代码片段),但下面的代码返回了完整的项目集。
java文档说“注意:限制不是指要返回的项目数,而是数据库在执行查询时应该评估多少项目。在后续查询调用中使用limit与Page.lastEvaluatedKey()和exclusiveStartKey一起评估限制每次通话的项目。” 这似乎支持我所看到的行为。
但是,如何设置 DynamoDB 使用 Java 返回的匹配项的限制?在早期版本的 sdk 中有一个使用 .withMaxResultSize 方法的解决方案。
java dynamodb v2 skd 是否有类似的东西,还是我必须手动限制结果集?代码如下:
dynamoose - 创建 shcemas 时出现 Dynamoose 问题“无法创建预先存在的表”或“无法对不存在的表执行操作”
我正在为我的 dynamodb 设计使用单一表方法。
看看这里(单表结构示例)。无需阅读所有页面。这个想法是将几种不同类型的实体存储在同一个表中。(例如,订单、产品、客户等)。
我使用 dynamoose,我有以下模式:
我使用以下内容创建表:
问题是,当我运行此代码时,我得到一个无法对不存在的表执行操作的错误。
注意:该表已创建,但也引发了错误。
但是,如果我在两次通话之间添加睡眠时间,问题就会消失。
(注意:我在异步代码中运行它- 以下是完整代码)
我认为这种等待不应该存在,并且在我运行代码的环境中,使模型创建异步产生另一个错误,因为需要模式的代码是在初始化之前执行的。
希望您能够帮助我。
完整代码在这里:
所需的依赖项是:
- 发电机:
npm install dynamoose
- 本地 dynamodb:(见此页)
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb -inMemory
amazon-dynamodb-local - DynamoDB NoSQL Workbench 测试表不可见
我是 DynamoDB 的新手,使用 NoSQL Workbench 进行学习。“数据建模器”部分中有一个新的“示例”表。我在“操作生成器”部分下建立了一个新的本地连接来处理/测试“示例”表。连接已成功创建并且没有错误。但我在 Connection 部分下看不到任何表格。它说“找不到表”。我无法理解这个问题。我想,我应该看到“数据建模器”部分下可见的“示例”表。如何查看连接部分中的表格?
node.js - 更新 dynamodb 记录中的属性
我正在尝试更新我的 dynamodb 表中的现有记录。如下所示,我的桌子上有一个项目
我想执行更新。我正在使用 aws dynamodb sdk 的更新方法并传递如下参数
当一个参数丢失时,发电机会引发 ExpressionAttributeValue 丢失异常,我知道它是直的。有没有办法可以使用提供的属性更新我的项目
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:
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:
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.
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
{“表名”:[“音乐”]}
java - DynamoDB:将 putItem 与空字符串一起使用失败
根据此处的文档,我应该能够将具有我的非键属性之一的项目作为空字符串。
我主要使用 Kotlin,但也使用 Java 进行了测试,但我无法编写空字符串。我看到以下错误:
我正在使用最新版本的 SDK,版本 2.13.55
这是Java中的一些示例代码:
amazon-dynamodb - awscli 在验证属性定义时不考虑全局二级索引
我正在尝试在创建 localstack 容器时初始化 dynamodb 表。考虑以下命令:
我收到以下错误:
我在 GSI 中使用这些,所以我想知道我在这里做错了什么?