AWS Lambda函数查询SQS MessageId和ApiGateway

时间:2017-01-03 13:49:02

标签: python aws-lambda amazon-sqs aws-api-gateway boto3

调用我的Api Gateway的url会触发Lambda函数,该函数插入在SQS中传递的消息并返回队列中消息的id。 现在我创建了另一个API网关资源,并通过另一个Lambda函数打印队列中的所有消息。这是功能:

import boto3
import json

def lambda_handler(event, context):

    sqs = boto3.resource('sqs')
    queue = sqs.get_queue_by_name(QueueName='<queue_name>')

    messages = set()
    for m in range(0, 9):
        msg_list = queue.receive_messages()
        for msg in msg_list:

            messages.add(msg.body)

    return list(messages)

如何更改函数以仅获取具有指定ID的消息? 如何配置Api网关以接收此信息 参数并将其传递给Lambda函数?

1 个答案:

答案 0 :(得分:4)

SQS不是数据库,您不能查询&#34;它。如果您需要通过某些密钥检索邮件,那么最好使用键值存储。 ElastiCache Redis和DynamoDB都非常适合此类工作。