问题标签 [dynamo-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.
node.js - DynamoDB 查询在 mocha 测试中超时
我正在运行一对 Docker 容器,一个运行 DynamoDB 本地,另一个运行 Nodejs。它们是链接的,我可以通过运行来确认链接是否有效:
我不认为这是问题的一部分,我只是为了完整起见在这里列出它。
但是,我无法在 mocha 中使用以下测试脚本。测试只是超时:
错误:超过 2000 毫秒的超时。确保在此测试中调用了 done() 回调。
这是测试脚本:
我可以看到记录了“检查表...”,但没有看到“返回的列表表”。
amazon-web-services - Dynamodb - 添加非关键属性
我想将数据插入到本地的 dynamodb 中。但是,我只有一个关键属性和多个非关键属性。
我有多个这样的价值观。这是一条记录,是我要插入的示例。以下是我正在尝试的:
我收到以下错误:
调用 CreateTable 操作时发生错误 (ValidationException):键模式中的属性数必须与属性定义中定义的属性数匹配。
amazon-dynamodb-streams - DynamoDB 本地:Streams.getRecords 返回 TrimmedDataAccessException
我正在使用 DynamoDB local 从 nodejs (Javascript SDK) 运行集成测试。当我调用 getRecords 时,我收到“TrimmedDataAccessException”。如果我在 AWS(非本地)中对 DynamoDB 运行相同的代码,它工作正常。以下是步骤:
- 运行 DynamoDB
- 创建表“事件存储”
- 创建表“音乐”
- describeTable "EventStore" (获取 LatestStreamArn")
- describeStream 返回为“LatestStreamArn”(获取 ShardId)
- getShardIterator with ShardIteratorType "LATEST"
- 将记录放入“音乐”表
- 将记录放入“EventStore”表
- 从“EventStore”流中获取记录
“put”命令的顺序很重要。如果我首先放入“EventStore”,一切正常,但当我首先放入“音乐”时,它会失败。如果我更改订单,我的应用程序逻辑就会出错,所以只是更改订单对我来说是个问题。
运行 DynamoDB
创建表
创建表(响应)
描述表(事件存储)
describeTable(EventStore) 响应
描述蒸汽
描述流响应
获取分片迭代器
getShardIterator 响应
放(表名:音乐)
放(表名:EventStore)
获取记录(事件存储)
getRecords (EventStore) 响应
node.js - DynamoDBLocal:如何启动和停止数据库?
我有一个“dynamodb_helper.js”,我使用local-dynamo在本地模拟 DynamoDB。我能够在测试之前启动服务器并成功运行它,但是 stopDB() 似乎不起作用。任何帮助/建议将不胜感激。因此,即使在测试结束后,服务器子进程仍会继续运行。
请在下面找到我的代码。
titan - 随着更多顶点/边的添加,titan + dynamoDB(本地)上的图形处理越来越慢
我正在使用 AWS dynamoDB 本地实施作为 16GB 机器上的存储后端来处理 Titan 1.0。我的用例涉及定期生成包含大约 120K 的顶点和边的图。每次我在内存中生成一个新图形时,我都会检查存储在 DB 中的图形,然后 (i) 添加不存在的顶点/边,或者 (ii) 如果它们已经存在则更新属性(存在由“标签”确定和一个“价值”属性)。请注意,“值”属性已编入索引。事务以 500 个顶点为一批提交。
问题:我发现每次处理新图时这个过程都会变慢(第一个图在 45 分钟内完成,最初是空数据库,第二个花了 2.5 小时,第三个在 3.5 小时内,第四个在 6 小时内,第五个在 10 小时内等等)。事实上,在处理给定的图时,它在开始时相当快,但逐渐变慢(初始批次需要 2-4 秒,后来对于 500 个节点的相同批次大小,它增加到 100 秒;我有时也看到它一批需要 1000-2000 秒)。这只是处理时间(见下面的方法);提交总是需要 8-10 秒。我将 jvm 堆大小配置为 10G,我注意到当应用程序运行时,它最终会用完所有这些。
问题:这种行为是否可以预期?在我看来,这里出了点问题(在我的配置/方法中?)。任何帮助或建议将不胜感激。
方法:
- 从内存图的根节点开始,检索所有子节点并维护一个队列
对于每个子节点,我检查它是否存在于数据库中,否则创建新节点并更新一些属性
/li>
创建函数:
Schema Def:(显示一些索引)
注意:
“EdgeLabel” = Constants.EdgeLabels.Uses
“EdgeProperty1” = Constants.EdgePropertyKeys.EndpointId
“EdgeProperty2” = Constants.EdgePropertyKeys.Timestamp
javascript - Node.js 连接 ECONNREFUSED 127.0.0.1:8000 DynamoDB 本地错误
我正在使用这个NPM 插件来处理在我的 Node 应用程序中创建本地 DynamoDB 本地服务器。出于某种原因,有时它会给我以下错误。无法弄清楚为什么,但在特定测试部分运行测试时似乎总是会发生这种情况。
绝对不会每次都发生。也许50%左右。很奇怪。
我已阅读该错误意味着启动 DynamoDB 本地服务器失败。但我不知道为什么,因为它没有提供更多细节。
哦,这是我创建服务器的代码。
有任何想法吗?
junit - 每个单元测试类或单例实例化的多个 DynamoDbLocal 实例
我正在尝试将 DynamoDbLocal 服务器用于单元测试用例。并提出了两个选择,
要么定义一个 junit 类规则,它在课前启动本地服务器并在课后停止它。所以本质上它将为每个单元测试类启动和停止服务器。
或者
单例实例:
你会推荐哪一个,你有更好的做法吗?请注意,我应该能够将它与 Guice 依赖注入框架一起使用。
javascript - 将 SVG 路径输入到 DynamoDb
我在尝试将 svg 字符串插入 dynamodb 时遇到问题。svg 路径包含在<svg></svg>
我认为导致插入问题的标签中。
当我尝试使用具有“<”和“>”的内容更新表时,它似乎没有正确地使用值更新属性,而是返回一个空字符串。在插入过程中,它似乎否定了“<”和“>”之间的任何内容。
java - 无法以编程方式使用 dynamodblocal 访问 http://localhost:{port}
我正在使用 com.amazonaws 的 dynamodblocal(来自 maven 的 1.10.5.1)在本地创建一个 inMemory dynamoDB。
启动本地服务器的 Java 代码是:
这是确认我已成功启动本地 dynamodb 的日志:
http://localhost:60677/shell
此处使用端口 60677,我可以从 Web 浏览器手动打开。但是当我尝试以编程方式访问它时它不起作用。我不断得到HTTP/1.1 500 Server Error
。
这会给我 500 错误(端口将是 的输出getAvailablePort()
):
另外,当我从命令行启动一个时:
并尝试以编程方式连接到它,它工作正常。它允许我以编程方式执行所有 CRUD 操作。
我究竟做错了什么?
arrays - 更新 AWS dynamoDB 中的 JSON 数组
我的文档如下所示:
比如说,我需要使用AttendeeId: 2016102973634-df更新参加者 JSON 数组。我尝试了许多使用更新和条件表达式的方法,但没有成功。
这是我的尝试:
找不到用于更新数组中的 Json 的任何资源。
在@notionquest 的评论之后: - 没有使用任何 JsonMarshaller。最初,我将空数组添加到参加者字段,如下所示:
然后当有新的与会者来时,我将其添加到与会者属性中,如下所示:
正如您在上面的代码片段中看到的,最初我添加了空的[] 数组并使用上面的代码添加了一个新的参加者。现在,如何更新数组中的特定 JSON。如果你说这是不可能的,我还能尝试什么?
我应该试试这个:
- 获取完整的 JSON。
- 操作 JSOn 并在我的 nodeJS 中更改我想要的东西。
- 然后将新的 JSON 更新为 dynamoDB。
- 但这消耗了对 dynamoDB 的两次调用,这似乎是低效的。
想知道有没有绕道的方法?