Mas*_*son 9 python boto amazon-dynamodb boto3
我有一个由DynamoDB流触发的Lambda.Lambda进行一些处理,然后在SNS中的主题上创建通知.理想情况下,我希望将整个新文档包含在发送到SNS的通知中,以便下游客户端不必命中DynamoDB来获取数据.
我遇到的问题是来自DynamoDB流的数据是DynamoDB有线格式(地图包括数据类型作为键).当我向下游客户端发送通知时,我不希望他们必须了解DynamoDB有线格式来解析消息(例如,如果我切换到新的底层数据存储,我将不得不重新创建该格式).
显然boto3客户端能够将这种格式解析为Python对象,有没有办法让我自己访问解析器?据我所知,它被称为从DynamoDB获取数据的一部分,但我无法找到自己调用它的方法.
gar*_*aat 18
我有类似的情况,我使用以下方法:
from boto3.dynamodb.types import TypeDeserializer
deser = TypeDeserializer()
...
<in handler>
for record in event['Records']:
old = record['dynamodb'].get('OldImage')
new = record['dynamodb'].get('NewImage')
if old:
d = {}
for key in old:
d[key] = deser.deserialize(old[key])
Run Code Online (Sandbox Code Playgroud)
这种方法对我有用.生成的字典d
包含转换的对象,而不是传递给处理程序的有线格式版本.
归档时间: |
|
查看次数: |
3462 次 |
最近记录: |