从 SQS 响应中获取数据

Get data from SQS Response

我有大约 20 API 和 20 个 SQS 的列表。 例如:API 姓名:XXX_API_NAME1 & SQS 姓名:YYY_SQS_NAME1 其余 19 APIs

的命名约定相同

这里,如果上述 API 中出现任何故障,它将调用它,并将消息发送到其各自的 SQS。

现在我需要从 SQS 获取信息,例如 API 名称、SQS 名称和时间戳,并且需要将这些信息起草为电子邮件发送给收件人。

我已经为一个 SQS 编写了触发 lambda 以接收如下消息,

sqs = boto3.resource("sqs")
queue = sqs.get_queue_by_name(QueueName='YYY_SQS_NAME1')

我打印队列变量并得到以下结果。

sqs.Queue(url='https://queue.amazonaws.com/558485267243/YYY-SQS-NAME1')

这是正确的方法吗?有什么方法可以编写单个 lambda 来实现以上所有 20 个 SQS 名称和属性?

没有理由像这样直接在 Lambda 函数中查询队列。你应该configure the SQS queue as an event source for the Lambda function。然后将在事件参数中使用一条或多条 SQS 消息调用 Lambda 函数。

如果您希望单个 Lambda 函数处理所有 SQS 队列,只需将它们全部配置为 Lambda 函数的事件源。