AWS Lambda 函数查询 SQS MessageId 和 ApiGateway

AWS Lambda function query SQS MessageId and ApiGateway

调用我的 Api 网关的 url 会触发一个 Lambda 函数,该函数将在 SQS 中传递的消息和 returns 队列中消息的 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 函数?

SQS 不是数据库,您不能"query"。如果您需要通过某个键检索消息,最好使用键值存储。 ElastiCache Redis 和 DynamoDB 都非常适合此类工作。