SNS 消息通过时的时间戳
Timestamp message in SNS as it passes through
我有来自 logstash 的日志消息(带有日志时间戳),它们在进入 logstash 时获得时间戳。消息离开 logstash 后,它会前往 SNS。当消息通过 SNS 时,我需要添加第三个时间戳,这样当我收到消息时,我可以知道延迟在哪里,如果有的话。消息沿途有更多节点,但我现在只关心 SNS。我的问题,"Specifically how do I add a timestamp to a message in SNS?"。
SNS 本身无法修改通过它发送的数据。但是您可以创建一个 Lambda 函数,您的 SNS 主题将发送到该函数。
Here is how to invoke Lambda from SNS
在 Lambda 中,您可以添加适当的时间戳,然后推进到另一个 SNS 主题。当然,这可能会增加一些额外的延迟。但根据您的情况,这可能是最好的前进方式。
SNS 使用 SNS 接收消息的时间自动为消息加上时间戳("published" -- 不是 SNS 将消息传送到链中下一个服务的时间)。
Timestamp
The time (GMT) when the notification was published.
如果您要将消息发送到 HTTP 或 SQS 端点,您还需要启用 raw message delivery 以访问包含时间戳的结构。由于这会将您的原始消息编码为 JSON 包装器,因此如果您的原始消息也在 JSON.
我有来自 logstash 的日志消息(带有日志时间戳),它们在进入 logstash 时获得时间戳。消息离开 logstash 后,它会前往 SNS。当消息通过 SNS 时,我需要添加第三个时间戳,这样当我收到消息时,我可以知道延迟在哪里,如果有的话。消息沿途有更多节点,但我现在只关心 SNS。我的问题,"Specifically how do I add a timestamp to a message in SNS?"。
SNS 本身无法修改通过它发送的数据。但是您可以创建一个 Lambda 函数,您的 SNS 主题将发送到该函数。
Here is how to invoke Lambda from SNS
在 Lambda 中,您可以添加适当的时间戳,然后推进到另一个 SNS 主题。当然,这可能会增加一些额外的延迟。但根据您的情况,这可能是最好的前进方式。
SNS 使用 SNS 接收消息的时间自动为消息加上时间戳("published" -- 不是 SNS 将消息传送到链中下一个服务的时间)。
Timestamp
The time (GMT) when the notification was published.
如果您要将消息发送到 HTTP 或 SQS 端点,您还需要启用 raw message delivery 以访问包含时间戳的结构。由于这会将您的原始消息编码为 JSON 包装器,因此如果您的原始消息也在 JSON.