【发布时间】:2021-10-16 00:45:05
【问题描述】:
我有一个 lambda 函数,它响应调用它的两个不同的 SQS 队列(第二个是退避队列),所以我想动态确定消息来自哪个队列,以便我可以将其删除一次已处理完毕。
我能够创建 EventSourceMapping 以从两个队列中触发 lambda,但是我看不到如何干净地检索执行 DeleteMessage 调用所需的 QueueURL。我正在使用 AWS Golang 开发工具包。
有EventSourceArn in the body of the event messages,看来我可以使用GetQueueURL,但这将是一个额外的API调用。
避免这种情况的唯一方法(我能想到的)是将两个队列 URL 作为环境变量传入,并使用 EventSourceArn 中的队列名称来查找它。
有没有更好的方法呢? context 中是否隐藏了一些未记录的内容?
【问题讨论】:
标签: amazon-web-services go aws-lambda amazon-sqs