从SQS响应获取数据

时间:2019-07-11 13:48:12

标签: amazon-web-services aws-lambda amazon-sqs amazon-sns

我列出了大约20个API和相等的20个SQS。 例如:API名称:XXX_API_NAME1和SQS名称:YYY_SQS_NAME1 其余19个API的命名约定相同

如果上述任何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名称和属性?

1 个答案:

答案 0 :(得分:1)

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

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