我有 eventBridge 触发 lambda,当在 AWS Inspector 扫描中发现关键发现时,该 lambda 生成 Jira 票证。
如果可能的话,我想将此限制为在过去 24 个事件中找到的事件,以确保不会创建重复的票证。适用于所有关键事件的事件触发器 JSON 是:
{
"source": ["aws.inspector2"],
"detail-type": ["Inspector2 Finding"],
"detail": {
"severity": ["CRITICAL"],
"status": ["ACTIVE"]
}
}
通过阅读本文,我不确定是否可以添加 firstObservedAt 来详细说明一些 now()-24 小时逻辑,
"firstObservedAt": "2023-12-08T15:22:39.524Z",
我还考虑过在 eventBridge 规则中的选择目标下使用最大事件年龄,但是我不相信这会起作用,因为该值决定了事件在事件队列中保留以进行重新处理的时间量,如果最初失败。 https://aws.amazon.com/about-aws/whats-new/2019/11/aws-lambda-supports-max-retry-attempts-event-age-asynchronous-indicates/
仅当 firstObservedAt 日期在过去 24 小时内时,eventBridge 是否可以触发事件目标?或者有其他方法可以解决这个问题吗?
我认为您对于独立 Eventbridge 解决方案的看法是正确的。
如果事件重复发生,您需要使用事件的“时间”属性并结合 lambda 外部的某种形式的缓存(文件、数据库、SQS 等)在 lambda 内部构建自定义逻辑,以便进行先前的调用。