我的系统架构如下所示: -
SNS - > AWS Lambda - > Dynamo Db
因此,SNS正在发布AWS Lambda函数作为订阅者的消息,然后AWS Lambda将数据推送到Dynamo Db。在此,我正在AWS Lambda中对消息进行一些转换。对于转换,我必须从某个地方获取一些规则。这些规则基本上是原始消息的字段与转换消息的字段之间的映射。
Eg.
Say, Original Message looks like below:-
{"id": 1,
"name":"dsadas",
"house":"dsads dsadsa",
"speciality":"asjdsa"
}
and my mapping is something like:-
{"id":"id",
"house":"home",
"speciality":"area"
}
所以,基本上我说id应该映射到id,house to home等等。
所以,我想在某些地方保留这种映射,比如Dynamo Db或某些配置服务。我不想直接将它保存在aws lambda代码中,因为我可能不得不改变它。但是在延迟方面将其保留在Dynamo Db中会非常昂贵,因为我会在每个消息请求上进行调用。所以,任何人都可以建议,任何可用于保持这些配置的aws资源非常快,通常用于保持配置。
答案 0 :(得分:0)
如果您需要完全灵活地修改映射,而无需修改Lambda代码,则必须依赖S3或Dynamodb或任何其他存储服务来保留映射,这也会增加延迟和成本。
您还可以保留单独的mapping.json(或js)并将文件与Lambda代码一起上传。缺点是,您需要为每个mapping.json修改重新部署Lambda函数。
另一种选择是使用环境变量,仅保留属性映射键值对,并使用这些变量在Lambda内构建映射模板。
您还可以将映射模板的base64编码用于环境变量,并在Lambda中使用它。