【问题标题】:Retrieve the SQS Queue URL dynamically from the lambda event or context从 lambda 事件或上下文中动态检索 SQS 队列 URL
【发布时间】: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


    【解决方案1】:

    如果您使用 lambda、SQS 和事件源映射,则不必手动从 sqs 中删除对象:When your function successfully processes a batch, Lambda deletes its messages from the queue

    只要返回一个成功码,消息就会自动从相关的SQS队列中删除

    【讨论】:

    • 谢谢。我想我试图确保我可以从批处理中删除特定消息,但我不一定需要。
    猜你喜欢
    • 2018-09-24
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多