如何解决AWS Eventbridge EventsSagemaker 训练作业状态更改使用相同的有效负载多次触发
我为 cloudwatch 中的 Sagemaker 训练作业状态更改创建了一个事件规则,以监控我的训练作业。然后我使用这个事件来触发一个 lambda 函数,该函数作为机器人在电报组中发送消息。通过这种方式,每次训练作业更改其状态时,我都会收到一条消息。它有效,但事件存在问题,它们以相同的确切有效负载被多次触发,因此我收到大量重复消息。
由于所有有效载荷都是相同的(除了字段 LastModifiedTime
),我无法在 lambda 中过滤它们。不幸的是,我没有 AWS 开发人员计划,因此无法获得 Amazon 的支持。有什么想法吗?
编辑
没有重复的规则/事件。我还注意到启用 Sagemaker 分析器(现在是默认设置)会导致相同规则调用的数量激增。除了 LastModifiedTime
之外,所有这些都具有相同的有效负载,因此我怀疑 AWS 中存在一个错误。一种解决方案可能是在 lambda 上实现某种数据保留并检查是否已经处理了调用,但我不想让应该非常简单的事情复杂化。刚刚尝试启动一个新的训练作业并得到这个序列(我只报告我解析的字段):
状态:进行中 次要状态:开始 状态消息:启动请求的 ML 实例
状态:进行中 次要状态:开始 状态消息:开始训练作业
状态:进行中 次要状态:开始 状态消息:开始训练作业
状态:进行中 次要状态:开始 状态消息:开始训练作业
状态:进行中 次要状态:开始 状态消息:为训练准备实例
状态:进行中 次要状态:正在下载 状态消息:正在下载输入数据
状态:进行中 次要状态:培训 状态消息:正在下载训练图像
状态:进行中 次要状态:培训 状态消息:培训进行中
状态:进行中 次要状态:培训 状态消息:训练图像下载完成。正在进行培训
解决方法
重复消息可能会发生,但应该非常罕见。您应该检查是否有任何重复的规则/时间表。您可以使用指标来确定正在调用/匹配的内容 https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-monitoring-cloudwatch-metrics.html。
另一个原因可能是您的规则过于宽泛并且匹配同一来源的多个事件。您可以针对 Cloudwatch Logs 的相同规则创建另一个目标,以查看匹配哪些事件以及是否需要进行任何过滤。
也有可能 sagemaker 只是将重复的事件发送到 EventBridge,在这种情况下,您最好的选择是让我们 ElastiCache 临时存储 ID 并在您的 lambda 中进行检查。
,经过大量实验后,我可以回答自己,Sagemaker 生成多个具有相同负载的事件,字段 LastModifiedTime
除外。我不知道这是一个错误,但在我看来不应该发生。这些是 AWS 自己定义的规则,所以我无法自定义。如果您启用分析器,情况会更糟。
我无能为力,因为我已经在 AWS 官方论坛上多次发帖,但没有任何运气。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。