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 都非常适合此类工作。
调用我的 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 都非常适合此类工作。