问题标签 [amazon-dynamodb-streams]
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.
amazon-web-services - Amazon DynamoDB:使用扫描的细粒度访问控制似乎是不可能的
我有一个非常简单的表,其中包含 3 个字段:
- uuid(字符串)
- 名字(字符串)
- 接受(布尔值)
我想知道用户策略是否允许在两个条件下执行两个操作“Scan”和“PutItem”:
对于扫描:扫描所有接受=真(仅允许该条件,但我不知道是否可能)。这将是一个类似的“视图”。
对于 PutItem:保护接受的字段。
我试过的
我只是尝试了一种基本方法:
如果我删除“已接受”,我将无法使用基于它的 ScanFilter。
我是否必须为两个用户设置两个单独的策略?
最难的部分似乎隐藏了所有带有accepted:false
.
任何帮助,将不胜感激。
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) 响应
amazon-web-services - 获取最后 N 分钟记录 Dynamodb Streams
我正在使用 dynamodb 创建聚合报告。我的程序每 10 分钟触发一次,从过去 10 分钟写入的 dynamodb 流中获取记录并创建汇总报告。我想知道如何使用 python 和 boto3 来完成这项工作。我正在尝试 get_shard_iterator 中是否有时间参数,但没有。我需要根据创建日期获取 shard_iterator 。有没有另一种方法来完成这项工作。
amazon-web-services - 暂时禁用 DynamoDB Lambda 触发器/流
我正在寻找一种方法来临时禁用 DynamoDB 上的 Lambda 触发器。我希望能够在不触发 Lambda 代码的情况下对表应用手动更新(例如,从 S3 备份导入数据)。我尝试了 lambda 函数“触发器”选项卡中触发器旁边的禁用按钮。我还尝试禁用表的整个流。在这两种情况下,当重新激活触发器/流时,所有触发器事件(在它们被停用时发生)都会被执行。
如何防止触发此代码?
非常感谢!
amazon-kinesis - Kinesis Stream 和 DynamoDB 流之间的区别
他们似乎对我做同样的事情。谁能向我解释其中的区别?
amazon-web-services - 单个 DynamoDB 流上的多个 AWS Lambda 函数
我有一个 Lambda 函数,将多个 DynamoDB 流配置为事件源,这是更大管道的一部分。在进行检查时,我在下游组件之一中发现了一些缺失的数据。我想编写一个更简单的 Lambda 函数,该函数被配置为前面提到的 DynamoDB 流之一的事件源。这将导致我的 DynamoDB 流之一有两个 Lambda 函数从中读取。我想知道这样可以吗?两个 Lamdba 函数是否都保证接收放置在流中的所有记录,并且是否有任何资源(读/写吞吐量)限制我需要注意。在 AWS 网站上找不到任何相关文档,但我确实找到了关于分片处理的文档
要访问流并处理其中的流记录,您必须执行以下操作:
- 确定您要访问的流的唯一 Amazon 资源名称 (ARN)。
- 确定流中的哪些分片包含您感兴趣的流记录。
- 访问分片并检索您想要的流记录。
注意 最多不能超过 2 个进程同时从同一个 Streams 分片读取。每个分片有超过 2 个读者可能会导致限制。
不确定上述内容与将 Streams 配置为 Lambdas 的事件源而不是使用 API 从 Stream 手动读取的情况有何关系。
java - 从 DynamodbStreamRecord 映射到 JSON 字符串
假设我有这种情况,其中我有DynamodbStreamRecord
一个 AWS Lambda 内部。从这个流记录(名为 的变量record
)中,我有一个以这种方式提取地图的 Java 方法链:
现在,我需要将此类w1Data
映射转换为 JSON 字符串,并尝试使用将org.json.JSONObject
映射作为输入参数的构造函数,后跟一个toString()
:
但我得到了这个奇怪的字符串:
而应该是这样的:
您是否有任何建议从该地图创建有效的 JSON 字符串而不显示 DynamoDB 指定的数据类型?
非常感谢
amazon-web-services - 如何在 Lambda 函数中检索 DynamoDB 的分片 ID?
AWS DynamoDB 触发器使我们能够捕获 DynamoDB 表中的所有更改。Lambda 将每个 Lambda 函数分配给DynamoDB Streams 的一个分片。
我想在 Lambda 函数中检索一个分片 ID,以保持某些数据处理任务的一致性,但我找不到获取它的方法。有人能做到吗?
amazon-web-services - 如何在 DynamoDB 中支持类似于 ORACLE 中的 LIKE 功能的搜索
我需要支持一个用例,我需要搜索用户给定的所有 INPUT 属性。由于 DynamoDB 不支持正则表达式,因此无法对该属性进行全面扫描。我该如何前进。用户会经常将该功能称为安静。