AWS Lambda事件过滤:DynamoDB删除事件筛选非Null参数报错求助
解决DynamoDB删除事件过滤address不为Null的问题
你之前的过滤模式错误在于没搞清楚DynamoDB Null值在事件中的结构——当address是Null时,它的字段结构是{"NULL": true},而不是{"S": null},所以不能用S类型的过滤规则来判断。
正确的事件过滤模式应该针对address的NULL属性做否定匹配,具体配置如下:
{ "eventName": ["REMOVE"], "dynamodb": { "OldImage": { "pk": { "S": [{ "prefix": "REG" }] }, "address": { "NULL": [{ "anything-but": true }] } } } }
配置说明:
- 仅匹配
eventName为REMOVE的删除事件 - 要求
OldImage中的pk字符串值以REG开头(和你之前的需求一致) - 排除
address字段标记为NULL: true的记录,只保留address不为Null的情况(不管address是字符串、数字还是其他合法DynamoDB类型)
如果你的场景中存在address字段完全不存在的删除记录,且你希望只处理address存在且不为Null的情况,可以加上字段存在的判断:
{ "eventName": ["REMOVE"], "dynamodb": { "OldImage": { "pk": { "S": [{ "prefix": "REG" }] }, "address": [{ "exists": true }], "address": { "NULL": [{ "anything-but": true }] } } } }
内容的提问来源于stack exchange,提问作者70X
相关产品推荐
相关产品推荐

