问题标签 [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.
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 连接中包含什么,总是会被丢弃。
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)
- Create new docker network using
docker network create local-dev
. - 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. - Then, I proceed with running AWS SAM
sam local start-api --docker-network local-dev
. Everything looks okay. - Invoked lambda.js, but it looks like no result for
console.log(err)
orconsole.log(data)
.
I'm not sure where could it be wrong. Please help me. Thank you in advance!
lambda.js
template.yaml
amazon-web-services - 带有发电机数据库的 yaml SAM 本地
我正在尝试创建一组依赖于 DynamoDB 的 lambda 函数。我编写了一个有效的 SAM 模板,如下所示:
但是当我尝试执行任何 lambdas 时,它们会在尝试调用putItem
. 我需要做些什么来确保我的 lambda 可以与我的本地 dynamodb 对话?
如何确保我的表甚至被正确创建?
go - 无法进行查询 API 调用,ResourceNotFoundException:无法对不存在的表进行操作
概括
我正在aws lambda
通过AWS SAM
.
这个功能需要数据库,所以我选择DynamoDB
.
现在我正在为AWS SAM
and设置本地环境DynamoDB
。
我似乎成功设置了 local ,但是在运行本地功能DynamoDB
时无法连接。aws sam
我想知道如何解决这个问题。
试过了
我创建了本地表并检查了测试数据是否已插入。
但是当我aws sam
在本地运行时,它似乎没有连接到这个本地,DynamoDB
尽管这个表确实在本地退出。
我想知道如何实际连接到本地DynamoDB
表。
一些代码
这是 Go 中的函数代码。
这是env.json
我尝试将 docker.for.mac.host.internal 更改为我的本地 IP 地址。但这并没有解决。
这是template.yml
amazon-dynamodb - 在 Java 中使用 DynamoDBMapper 更新特定属性
我只想使用 DynamoDBMapper 更新项目的特定属性。例如,我有一个带有属性的用户表,即 id、name、address。
我只想更新地址属性而不是其他字段(选择性更新)。
我可以使用 UpdateItemSpec 找到一个示例示例,但找不到 DynamoDBMapper。使用 UpdateItemSpec,我可以使用 withUpdateExpression() 来定义更新表达式。更多细节可以在这里找到。
有什么方法可以实现与DynamoDBMapper相同的效果吗?
amazon-web-services - SAM Lambda python函数未连接到docker中的本地dynamoDb
我已经在 docker 容器中安装了 dynamodb,并且可以从命令行写入和读取记录。但是,当我尝试使用 Python3 连接到数据库时出现错误。
无法连接到端点 URL:“ http://localhost:8000/ ”:EndpointConnectionError
这是我的代码片段
amazon-dynamodb - Dynamodb 本地 Web Shell 不显示表格
我已经使用以下命令设置了 dynamodb docker 映像:
我能够创建一个表:
我可以使用 aws cli 列出表:
但是当我使用 localhost:8000/shell 来列出表时,我得到一个空列表。在外壳上显示表格的正确方法是什么?
node.js - 无服务器离线 - 本地 dynamoDb 上的迁移不起作用
我在一个无服务器项目中工作,并且在使用 dynamodb 在本地运行我的应用程序时遇到问题。它没有创建数据表,因此无法正确执行种子。我的配置有什么问题?
启动命令:$ sls offline start --stage dev
错误信息:
无服务器文件:
dynamodb 处理程序文件:
种子文件 v0.json:
包.json
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
在测试中对其进行硬编码,我可以让它每次都错过项目。