我正在实现自己的Webhooks服务,该服务将向已订阅的Webhooks发送事件。
架构概述:
- 事件被推送到SQS队列。 - SQS消息触发Lambda函数(事件源映射)。 - 对于每个事件,我都会向订阅的Webhooks发出传出HTTP请求。 - 非2xx响应必须进行指数退避重试(在这种情况下,我更改接收到的消息上的消息可见性)。 - 由于由SQS调用的Lambda函数会在完成后自动删除消息,因此我在函数末尾抛出错误以防止自动删除。
据我所知,更改消息可见性的调用是成功的。我想知道是否还有其他内置于SQS调用的Lambda函数中的内容。当Lambda函数失败时,它是否在内部再次更改消息可见性?或者由SQS调用的Lambda是否不尊重消息可见性更改(这对我来说真的毫无意义)。如果有人对此问题有任何见解,请告诉我。我很惊讶地发现Lambda在成功后自动删除消息,因为它让我的特定用例感觉有点笨拙 - 抛出错误以使Lambda函数失败以防止消息被删除。
提前致谢!
架构概述:
- 事件被推送到SQS队列。 - SQS消息触发Lambda函数(事件源映射)。 - 对于每个事件,我都会向订阅的Webhooks发出传出HTTP请求。 - 非2xx响应必须进行指数退避重试(在这种情况下,我更改接收到的消息上的消息可见性)。 - 由于由SQS调用的Lambda函数会在完成后自动删除消息,因此我在函数末尾抛出错误以防止自动删除。
据我所知,更改消息可见性的调用是成功的。我想知道是否还有其他内置于SQS调用的Lambda函数中的内容。当Lambda函数失败时,它是否在内部再次更改消息可见性?或者由SQS调用的Lambda是否不尊重消息可见性更改(这对我来说真的毫无意义)。如果有人对此问题有任何见解,请告诉我。我很惊讶地发现Lambda在成功后自动删除消息,因为它让我的特定用例感觉有点笨拙 - 抛出错误以使Lambda函数失败以防止消息被删除。
提前致谢!