问题标签 [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.

0 投票
0 回答
69 浏览

amazon-web-services - Amazon DynamoDB:使用扫描的细粒度访问控制似乎是不可能的

我有一个非常简单的表,其中包含 3 个字段:

  1. uuid(字符串)
  2. 名字(字符串)
  3. 接受(布尔值)

我想知道用户策略是否允许在两个条件下执行两个操作“Scan”和“PutItem”:

  1. 对于扫描:扫描所有接受=真(仅允许该条件,但我不知道是否可能)。这将是一个类似的“视图”。

  2. 对于 PutItem:保护接受的字段。

我试过的

我只是尝试了一种基本方法:

如果我删除“已接受”,我将无法使用基于它的 ScanFilter。

我是否必须为两个用户设置两个单独的策略?

最难的部分似乎隐藏了所有带有accepted:false.

任何帮助,将不胜感激。

0 投票
1 回答
1603 浏览

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) 响应

0 投票
0 回答
714 浏览

amazon-web-services - 获取最后 N 分钟记录 Dynamodb Streams

我正在使用 dynamodb 创建聚合报告。我的程序每 10 分钟触发一次,从过去 10 分钟写入的 dynamodb 流中获取记录并创建汇总报告。我想知道如何使用 python 和 boto3 来完成这项工作。我正在尝试 get_shard_iterator 中是否有时间参数,但没有。我需要根据创建日期获取 shard_iterator 。有没有另一种方法来完成这项工作。

0 投票
1 回答
4306 浏览

amazon-web-services - 暂时禁用 DynamoDB Lambda 触发器/流

我正在寻找一种方法来临时禁用 DynamoDB 上的 Lambda 触发器。我希望能够在不触发 Lambda 代码的情况下对表应用手动更新(例如,从 S3 备份导入数据)。我尝试了 lambda 函数“触发器”选项卡中触发器旁边的禁用按钮。我还尝试禁用表的整个流。在这两种情况下,当重新激活触发器/流时,所有触发器事件(在它们被停用时发生)都会被执行。

如何防止触发此代码?

非常感谢!

0 投票
1 回答
16065 浏览

amazon-kinesis - Kinesis Stream 和 DynamoDB 流之间的区别

他们似乎对我做同样的事情。谁能向我解释其中的区别?

0 投票
2 回答
11994 浏览

amazon-web-services - 单个 DynamoDB 流上的多个 AWS Lambda 函数

我有一个 Lambda 函数,将多个 DynamoDB 流配置为事件源,这是更大管道的一部分。在进行检查时,我在下游组件之一中发现了一些缺失的数据。我想编写一个更简单的 Lambda 函数,该函数被配置为前面提到的 DynamoDB 流之一的事件源。这将导致我的 DynamoDB 流之一有两个 Lambda 函数从中读取。我想知道这样可以吗?两个 Lamdba 函数是否都保证接收放置在流中的所有记录,并且是否有任何资源(读/写吞吐量)限制我需要注意。在 AWS 网站上找不到任何相关文档,但我确实找到了关于分片处理的文档

要访问流并处理其中的流记录,您必须执行以下操作:

  • 确定您要访问的流的唯一 Amazon 资源名称 (ARN)。
  • 确定流中的哪些分片包含您感兴趣的流记录。
  • 访问分片并检索您想要的流记录。

注意 最多不能超过 2 个进程同时从同一个 Streams 分片读取。每个分片有超过 2 个读者可能会导致限制。

不确定上述内容与将 Streams 配置为 Lambdas 的事件源而不是使用 API 从 Stream 手动读取的情况有何关系。

0 投票
1 回答
2408 浏览

java - 从 DynamodbStreamRecord 映射到 JSON 字符串

假设我有这种情况,其中我有DynamodbStreamRecord一个 AWS Lambda 内部。从这个流记录(名为 的变量record)中,我有一个以这种方式提取地图的 Java 方法链:

现在,我需要将此类w1Data映射转换为 JSON 字符串,并尝试使用将org.json.JSONObject映射作为输入参数的构造函数,后跟一个toString()

但我得到了这个奇怪的字符串:

而应该是这样的:

您是否有任何建议从该地图创建有效的 JSON 字符串而不显示 DynamoDB 指定的数据类型?

非常感谢

0 投票
1 回答
541 浏览

amazon-web-services - 如何在 Lambda 函数中检索 DynamoDB 的分片 ID?

AWS DynamoDB 触发器使我们能够捕获 DynamoDB 表中的所有更改。Lambda 将每个 Lambda 函数分配给DynamoDB Streams 的一个分片

我想在 Lambda 函数中检索一个分片 ID,以保持某些数据处理任务的一致性,但我找不到获取它的方法。有人能做到吗?

0 投票
0 回答
140 浏览

amazon-web-services - 如何在 DynamoDB 中支持类似于 ORACLE 中的 LIKE 功能的搜索

我需要支持一个用例,我需要搜索用户给定的所有 INPUT 属性。由于 DynamoDB 不支持正则表达式,因此无法对该属性进行全面扫描。我该如何前进。用户会经常将该功能称为安静。

0 投票
2 回答
1353 浏览

amazon-web-services - AWS Lambda 并行执行如何与 DynamoDB 配合使用?

我通过这篇文章说数据记录被组织成称为碎片的组,这些碎片可以被 Lambda 函数并行消费和处理。我还从 AWS webindar中找到了这些幻灯片,在幻灯片 22 中,您还可以看到 Lambda 函数并行使用不同的分片。但是我无法实现单个函数的并行执行。我创建了一个运行一分钟的简单 lambda 函数。然后我开始在 DynamoDB 中创建大量项目,期望获得大量流记录。尽管如此,我的职能还是一个接一个地开始了。

我做错了什么?