将cloudwatch警报连接到DynamoDB表的内容
问题描述:
利用AWS工具套件中的所有内容,是否有办法警报DynamoDB表中的值?将cloudwatch警报连接到DynamoDB表的内容
例如,如果在DynamoDB表中更新了任何内容,是否有办法将事物挂钩以便检查表的内容,并且如果表中设置了某些值,则Cloudwatch警报可以关闭它?
注意:在知道该做什么或是否报警之前,我需要检查表格的整个内容(不会是一个大表格)。
即使只是一些有关可以做到这一点的堆栈组件的细节会有所帮助!
答
这可以使用DynamoDB Streams和AWS Lambda来触发警报。步骤如下。
- 在CloudWatch中创建警报。
- 对于特定的表创建一个流来触发Lambda函数。这将确保在DynamoDB表中发生更改时,更改将可用于Lambda代码,您可以在该更改符合条件时编写Alarm触发器。
- 对于CloudWatch,使用AWS SDK触发警报更改其状态,如果条件满足,则从Lambda调用
setAlarmState
方法。
此外,对于您的用例,如果需要在表中某个数据更改后发送通知,则可以按如下方式设置要从Lambda触发的AWS SNS主题。
DynamoDB Strams - > LAMBDA - > SNS发布
这里后续动作可以从SNS被配置成当一个messege出版。
注意:您需要为由Lambda函数假设的IAM角色提供CloudWatch权限才能触发警报。
我现在没时间写一个正确的答案,所以我只是指出你正确的方向。您将需要具有Lambda函数的DynamoDB流。请参阅此处的教程:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.Lambda.html –