http headers 通过 AWS SNS 服务从一个端点到另一个端点

http headers from one endpoint to other via AWS SNS service

我有一个要求,我需要从 api A 发送一些入站 http 查询参数,方法是将其发布到 SNS,而其他 api B 订阅了 sns,它应该在其中获取查询参数.

有什么办法可以实现吗?

注意:当我发布到 SNS 时,我有一个固定的消息结构,我无法更改,因为我有其他端点已经订阅了 SNS,请依赖它。

正如 Michael 提到的,我们可以使用 lambda。但我不想使用 aws 提供的其他服务。我只想使用 SNS 来实现相同的目标。听说过SNS消息属性,不知道能不能达到同样的效果。

谢谢。

SNS 不支持自定义 HTTP 事务或以其他方式修改正在传递的消息...但 SNS 支持以 Lambda 函数为目标的订阅。

这意味着您可以编写一个解析 SNS 事件负载的 Lambda 函数...然后,您的 Lambda 函数向目标端点发出 HTTPS 请求,而不是 SNS 通过 HTTPS 联系目标系统,并根据需要进行自定义.如果 HTTPS 请求失败,或者端点 returns 出错,Lambda 函数应该抛出异常,以便 Lambda 可以知道重试。

https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-sns