从 lambda 事件或上下文中动态检索 SQS 队列 URL
Retrieve the SQS Queue URL dynamically from the lambda event or context
我有一个 lambda 函数,它响应调用它的两个不同的 SQS 队列(第二个是回退队列),所以我想动态确定消息来自哪个队列,以便我可以删除一旦处理完毕。
我能够创建 EventSourceMapping 以从两个队列触发 lambda,但我看不到如何干净地检索执行 DeleteMessage 调用所需的 QueueURL。我正在使用 AWS Golang SDK。
有 EventSourceArn in the body of the event messages and it seems I could use GetQueueURL 但那将是一个额外的 API 调用。
避免这种情况(我能想到)的唯一方法是将两个队列 URL 作为环境变量传递并使用 EventSourceArn 中的队列名称来查找它。
有没有更好的方法呢? context 中是否隐藏了未记录的内容?
如果您使用的是 lambda、SQS 和事件源映射,则无需手动从 sqs 中删除对象:When your function successfully processes a batch, Lambda deletes its messages from the queue
只要return一个成功码,消息就会自动从相关的SQS队列中删除
我有一个 lambda 函数,它响应调用它的两个不同的 SQS 队列(第二个是回退队列),所以我想动态确定消息来自哪个队列,以便我可以删除一旦处理完毕。
我能够创建 EventSourceMapping 以从两个队列触发 lambda,但我看不到如何干净地检索执行 DeleteMessage 调用所需的 QueueURL。我正在使用 AWS Golang SDK。
有 EventSourceArn in the body of the event messages and it seems I could use GetQueueURL 但那将是一个额外的 API 调用。
避免这种情况(我能想到)的唯一方法是将两个队列 URL 作为环境变量传递并使用 EventSourceArn 中的队列名称来查找它。
有没有更好的方法呢? context 中是否隐藏了未记录的内容?
如果您使用的是 lambda、SQS 和事件源映射,则无需手动从 sqs 中删除对象:When your function successfully processes a batch, Lambda deletes its messages from the queue
只要return一个成功码,消息就会自动从相关的SQS队列中删除