首页 > 解决方案 > 如何从 SQS 指定 AWS Lambda 的输入?

问题描述

我创建了一个 lambda 函数,我想从 Amazon SQS 触发它。对于处理程序 (Event,Context) 中的事件值,我想从这个 SQS 中指定一个值。我想指定一个大的 JSON。我怎样才能做到这一点?

标签: amazon-web-servicesaws-lambdaamazon-sqs

解决方案


事件源发布的示例事件 - AWS Lambda中,Amazon SQS 会将此事件信息发送到 AWS Lambda 函数:

{
     "Records": [
        {
            "messageId": "c80e8021-a70a-42c7-a470-796e1186f753",
            "receiptHandle": "...",
            "body": "{\"foo\":\"bar\"}",
            "attributes": {
                "ApproximateReceiveCount": "3",
                "SentTimestamp": "1529104986221",
                "SenderId": "594035263019",
                "ApproximateFirstReceiveTimestamp": "1529104986230"
            },
            "messageAttributes": {},
            "md5OfBody": "9bb58f26192e4ba00f01e2e7b136bbd8",
            "eventSource": "aws:sqs",
            "eventSourceARN": "arn:aws:sqs:us-west-2:594035263019:NOTFIFOQUEUE",
            "awsRegion": "us-west-2"
        }
    ]

SQS 消息的正文在body参数中提供。

SQS 消息的最大大小为 256 KB,但我不确定您能否将这么大的内容传递给 Lambda。我建议你试试看!

在最坏的情况下,将内容存储在 Amazon S3 中并在消息中传递对 S3 对象的引用。


推荐阅读