当前位置: 首页 > 知识库问答 >
问题:

DynamoDB全局表复制流事件问题

刘子实
2023-03-14

我们遇到了这样一种情况:如果我们有一个全局复制的表,但也使用表流来处理插入/更新事件的记录。

例如,我们在us-east-1和us-west-2之间复制了一个表,其中一个lambda连接到其所在区域的每个表流。在us-east-1表中执行更新时,将使用更新的记录调用us-west-2 lambda。问题是我们不需要处理复制到us-west-2的记录,我们使用的是2019版的dynamodb全局表,因此没有元数据或其他字段可以帮助执行此验证。

有人知道如何缓解这个问题吗?

共有1个答案

邵君植
2023-03-14

可接受的答案:我通常推荐的方法是添加您自己的属性,该属性记录最近进行更改的区域。然后,处理流记录的Lambda函数将忽略区域标识不是本地的任何记录。

 类似资料:
  • 希望创建一个DynamoDB全局表来存储客户信息。我的问题是,我目前的模式是监听此表上的更改,并使用Lambda触发器发送电子邮件更新。 i、 e.您的个人资料信息已更改。如果不是你。。 我现在是否需要在每个区域中使用该Lambda?数据复制是否意味着每个区域都会触发该Lambda?

  • EasySwoole有四个全局事件,全部位于框架安装后生成的EasySwooleEvent.php中。 frameInitialize 框架初始化事件 mainServerCreate 主服务创建事件 onRequest Http请求事件 afterAction Http响应后事件 frameInitialize mainServerCreate onRequest afterAction

  • 请求方法结束后执行 假如你使用了单例模式,需要清理请求时的GET POST 等全局变量或本次请求的日志运行记录,就可以在此方法内执行。 protected function afterAction( $actionName ) : void 示例 想一下,我如果想知道那些请求的执行时间长短,或者记录一些所谓的 慢请求, 那幺我们可以通过两个事件 onRequest 和当前这个 afterActio

  • 收到请求事件 protected function onRequest($actionName): ?bool 当EasySwoole收到任何的HTTP请求时,均会执行该事件。该事件可以对HTTP请求全局拦截。 $sec = new Security(); if($sec->check($request->getRequestParam())){ $response->write("do n

  • 函数原型 @param \EasySwoole\Core\Swoole\ServerManager $server @param \EasySwoole\Core\Swoole\EventRegister $register public static function mainServerCreate(ServerManager $server,EventRegister $register):

  • 函数原型 public static function frameInitialize(): void { } 已完成工作 在执行框架初始化事件时,EasySwoole已经完成的工作有: 全局常量EASYSWOOLE_ROOT的定义 系统默认Log/Temp目录的定义 可处理内容 在该事件中,可以进行一些系统常量的更改和全局配置,例如: 修改并创建系统默认Log/Temp目录。 修改IOC容器中H