DynamoDB更新–触发器(Streams + Lambda)+跨域复制应用

  

 

  现在我就来确认我的目标。我将会激活事件源(在实际开发中,你可能想要推迟这一步直到你编写并测试代码之后):

  

 

  点击Create function将会创建该功能并使用表的更新流作为一个事件源。我可以在Lambda Console的Event sources页签看到该事件源和其他事件源的状态:

  

 

  好了,我已经一切设置完毕。到现在我启动了一项功能,该功能与我的表中的更新流相连接,并做好了处理记录的准备!为了测试这一功能,我切换到DynamoDB Console,向表中插入了几个项目以便在流中生成某些活动:

  

 

  然后我返回到Lambda Console(当然,浏览器页签使页签切换变得非常简单),验证一切是否如预期一样运行良好。快速浏览Monitoring页签后,我确认该功能运行了两次,并没有明显错误:

  

 

  结果看起来很好,所以我检查该功能的CloudWatch Logs(CloudWatch逻辑)来了解更多信息:

  

 

  如果我是在创建一个真正的应用的话,我可以从蓝图提供的代码开始,从那里添加更多的功能。

  AWS客户 Mapbox已经开始使用DynamoDB Streams和Lambda了,看看它们的新博客贴 Scaling the Mapbox Infrastructure with DynamoDB Streams(使用DynamoDB Streams特性伸缩Mapbox基础设施)。

  想要了解如何同时使用DynamoDB和Lambda的更多信息,请阅读关于 Using DynamoDB Streams and AWS Lambda(使用DynamoDB Streams和AWS Lambda)的文档。使用DynamoDB Triggers不会收取费用;你只是为执行Lambda功能支付通常的费率(想要获取更多信息,请参阅Lambda Pricing页面)。

  我相信,这一新特性将会使你的应用更简单,更强大,响应性更强。请让我知道你使用这一特性构建的应用!

  DynamoDB跨域复制

  作为DynamoDB Streams新特性的使用案例,我们也正在为DynamoDB发布一个新的跨域复制应用。该应用利用我们去年发布的 DynamoDB Cross Region Replication library(DynamoDB 跨域复制知识库,当然你也可以使用该知识库作为你应用的一部分)。

  你可以出于若干个不同的原因使用复制功能跨域复制DynamoDB数据,包括容灾和从多个位置实现低时延访问。正如你将看到的,该应用使你轻松地设置和维护复制副本。

  该应用运行在 AWS Elastic Beanstalk上,利用 Amazon EC2 Container Service(亚马逊EC2容器业务),所有这些都是通过 AWS CloudFormation模板发起。

  你可以从DynamoDB Console内部开始发起流程。CloudFormation将会提醒你输入它创建堆栈和容器所需拥有的信息:

  

 

  赋予堆栈(模板所发起的AWS资源组的总称)一个名称,然后点击Next。然后输入参数(你可以保存大多数参数的默认值):

  

 

  Metadata表包含复制程序需要了解的待复制的表的范围和复制副本存储位置信息。在发起复制应用后,你可以访问它的在线配置页面(CloudFormation将会生成一个URL)进行设置:

  

 

 

  你可以免费使用该特性。但你必须为你使用的资源付费。这些资源包括为表副本所配置的吞吐和存储,域间数据传输,从Streams中读取数据,EC2实例,用于控制应用的SQS队列。想要了解更多信息,请参阅 DynamoDB Pricing 页面。