问题标签 [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 回答
219 浏览

docker - Jest-dynamoDB 连接在 docker 容器内被拒绝

我有一套用 Jest 为 dynamoDB 编写的测试,这些测试使用 dynamodb-local 实例,如此处所述使用此依赖项。我使用了一个定制的 Docker 镜像,它构建了一个在其中执行测试的容器。这是 Dockerfile

yarn install所有的依赖项,然后yarn test,在很长一段时间后它会输出这个: 错误

这是我使用的命令: docker run -it --rm -p 8000:8000 -v $(pwd):/data -w /data aws-cli-java8-v15:latest

这些测试在我自己的机器上运行良好,但无论我使用什么项目或我在 Dockerfile 连接中包含什么,总是会被丢弃。

0 投票
1 回答
666 浏览

java - DynamoDBLocal 错误:com.amazonaws.services.dynamodbv2.local.embedded 包不存在

0 投票
1 回答
3032 浏览

node.js - AWS SAM Local + DynamoDB Local

I'm currently testing out AWS SAM with DynamoDB Local using Docker.

Here is the steps that I followed (mostly found in the internet)

  1. Create new docker network using docker network create local-dev.
  2. Run DynamoDB Local docker run -d -v "$PWD":/dynamodb_local_db -p 8000:8000 --network local-dev --name dynamodb amazon/dynamodb-local. Until this point, I'm being able to create and list tables using AWS CLI.
  3. Then, I proceed with running AWS SAM sam local start-api --docker-network local-dev. Everything looks okay.
  4. Invoked lambda.js, but it looks like no result for console.log(err)or console.log(data).

I'm not sure where could it be wrong. Please help me. Thank you in advance!

lambda.js

template.yaml

0 投票
2 回答
1145 浏览

amazon-web-services - 带有发电机数据库的 yaml SAM 本地

我正在尝试创建一组依赖于 DynamoDB 的 lambda 函数。我编写了一个有效的 SAM 模板,如下所示:

但是当我尝试执行任何 lambdas 时,它们会在尝试调用putItem. 我需要做些什么来确保我的 lambda 可以与我的本地 dynamodb 对话?

如何确保我的表甚至被正确创建?

0 投票
1 回答
667 浏览

go - 无法进行查询 API 调用,ResourceNotFoundException:无法对不存在的表进行操作

概括

我正在aws lambda通过AWS SAM.
这个功能需要数据库,所以我选择DynamoDB.
现在我正在为AWS SAMand设置本地环境DynamoDB
我似乎成功设置了 local ,但是在运行本地功能DynamoDB时无法连接。aws sam

我想知道如何解决这个问题。

试过了

我创建了本地表并检查了测试数据是否已插入。

但是当我aws sam在本地运行时,它似乎没有连接到这个本地,DynamoDB尽管这个表确实在本地退出。

我想知道如何实际连接到本地DynamoDB表。

一些代码

这是 Go 中的函数代码。

这是env.json
我尝试将 docker.for.mac.host.internal 更改为我的本地 IP 地址。但这并没有解决。

这是template.yml

这是完整的源代码。 https://github.com/jpskgc/line-positive-bot

0 投票
1 回答
2398 浏览

amazon-dynamodb - 在 Java 中使用 DynamoDBMapper 更新特定属性

我只想使用 DynamoDBMapper 更新项目的特定属性。例如,我有一个带有属性的用户表,即 id、name、address。

我只想更新地址属性而不是其他字段(选择性更新)。

我可以使用 UpdateItemSpec 找到一个示例示例,但找不到 DynamoDBMapper。使用 UpdateItemSpec,我可以使用 withUpdateExpression() 来定义更新表达式。更多细节可以在这里找到。

有什么方法可以实现与DynamoDBMapper相同的效果吗?

0 投票
1 回答
493 浏览

amazon-web-services - SAM Lambda python函数未连接到docker中的本地dynamoDb

我已经在 docker 容器中安装了 dynamodb,并且可以从命令行写入和读取记录。但是,当我尝试使用 Python3 连接到数据库时出现错误。

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

这是我的代码片段

0 投票
2 回答
1041 浏览

amazon-dynamodb - Dynamodb 本地 Web Shell 不显示表格

我已经使用以下命令设置了 dynamodb docker 映像:

我能够创建一个表:

我可以使用 aws cli 列出表:

但是当我使用 localhost:8000/shell 来列出表时,我得到一个空列表。在外壳上显示表格的正确方法是什么?

0 投票
2 回答
2441 浏览

node.js - 无服务器离线 - 本地 dynamoDb 上的迁移不起作用

我在一个无服务器项目中工作,并且在使用 dynamodb 在本地运行我的应用程序时遇到问题。它没有创建数据表,因此无法正确执行种子。我的配置有什么问题?

启动命令:$ sls offline start --stage dev

错误信息:

无服务器文件:

dynamodb 处理程序文件:

种子文件 v0.json:

包.json

0 投票
1 回答
294 浏览

python - begin_with 和 DynamoDB 中的二进制列的奇怪行为

概括

使用 查询二进制范围键时begins_with,即使以所查询的值开头,也不会返回某些结果。这似乎只发生在某些值上,并且只发生在 DynamoDB-local - 而不是 AWS 托管的 DynamoDB 版本中。

这是一个可以重现问题的要点:https ://gist.github.com/pbaughman/922db7b51f7f82bbd9634949d71f846b

细节

我有一个具有以下架构的 DynamoDB 表:

在使用dynamodb-local docker 映像在本地运行我的单元测试时,我观察到一些奇怪的行为

我在我的表中插入了 20 个项目,如下所示:

每个项目都有相同user_id的和project_id不同的item_id

当我尝试查询相同的数据时,有时(可能是我运行测试的五分之一)我只得到一些项目:

如果我从 KeyConditionExpression 中删除第二个条件,我会得到所有 20 个项目。

如果我运行扫描而不是查询并使用相同的条件表达式,我会得到所有 20 个项目

如果我打印表中每个项目的 project_id_item_id,我可以看到它们都以相同的 project_id 开头:

作为健全性检查,这是我在查询中使用的 project_id:

最后,最奇怪的部分是我可以尝试匹配项目 ID 的更少字节,然后我开始看到所有 20 个项目,然后是零个项目,然后又是所有 20 个项目:

得到我:

我完全被这种模式惊呆了。如果我要搜索的范围键是 8、10 或 12 个字节长,我将找不到匹配项。如果它的长度为 16 个字节,我得到的匹配数少于 20 个但多于 0 个。

有人知道这里会发生什么吗? 文档表明 begin_with 表达式适用于二进制数据。我完全不知道可能出了什么问题。我想知道 DynamoDB-local 是否正在做一些事情,比如在内部将二进制数据转换为字符串以进行比较,并且其中一些二进制模式不能正确转换。

似乎它可能与 project_id UUID 有关。如果我76761923-aeba-4edf-9fcc-b9eeb5f80cc4在测试中对其进行硬编码,我可以让它每次都错过项目。