【问题标题】:AWS Lambda - Is there a way to pass parameters to a lambda function when an event occursAWS Lambda - 有没有办法在事件发生时将参数传递给 lambda 函数
【发布时间】:2016-06-10 19:08:27
【问题描述】:
我有一个 DynamoDB 表,每当添加新记录时,我都想将旧数据存档到 S3。所以我想我可以使用 AWS Lambda。因此 lambda 函数将获取新添加/修改的新记录。但我想传递(给 lambda 函数)记录必须上传到的 s3 路径的附加参数。
一种方法是将我想要传递给另一个表/s3 中的 lamda 函数的任何内容。但是这个(参数)会随着每条记录被插入到主表中而改变。所以我无法从我的 lambda 函数中读取它。 (当 lambda 函数为第一个插入的记录执行时,将插入更多的记录)
有没有办法将参数传递给 lambda 函数?
P.S:我想异步执行 lambda。
谢谢...
【问题讨论】:
标签:
amazon-s3
amazon-dynamodb
aws-lambda
amazon-dynamodb-streams
【解决方案1】:
为什么不将此参数(s3 路径)添加到您的 dynamodb 表中(在其中添加了新的原始数据 - 不是在另一个表中,而是在 lambda 正在侦听的同一个表中)
【解决方案2】:
您现在可以通过以下方式完成此操作:
- 将DynamoDB Stream 附加到您的 Dynamo 表以查看
NEW_AND_OLD_IMAGES
- 在 lambda 函数上创建事件源以读取 DynamoDB 流
- 在您的 lambda 函数中添加一个 environment variable 以指示在 S3 中将数据写入的位置
您仍然需要从记录本身获取记录存储位置的详细信息,但您可以在环境变量中指明存储桶或表名称。