我创建了一个事件规则,用于在cloudwatch中更改Sagemaker培训作业状态,以监视我的培训工作。然后,我使用这些事件触发lambda函数,该函数以机器人的身份在电报组中发送消息。通过这种方式,每次培训工作更改其状态时,我都会收到一条消息。它可以工作,但有一个问题,事件,他们被激发了多次与相同的有效载荷,所以我收到了大量重复的消息。因为所有的payploads都是相同的(除了字段LastModifiedTime),所以我不能在lambda中过滤它们。不幸的是,我没有AWS开发计划,所以我不能得到亚马逊的支持。有什么想法吗?
编辑
没有重复的规则/事件。我还注意到,启用Sagemaker (默认情况下)会导致相同规则调用的数量急剧增加。除了LastModifiedTime之外,它们都有相同的有效负载,因此我怀疑AWS中存在这样的错误。一种解决方案可能是在lambda上实现某种类型的数据保留,并检查是否已经处理了调用,但我不想让一件应该非常简单的事情复杂化。刚刚尝试启动一个新的培训工作,并得到了这个序列(我只报告了我解析的字段):
状态: InProgress辅助状态:启动状态消息:启动请求的ML实例
状态: InProgress辅助状态:启动状态消息:开始培训作业
状态: InProgress辅助状态:启动状态消息:开始培训作业
状态: InProgress辅助状态:启动状态消息:开始培训作业
状态: InProgress辅助状态:启动状态消息:为培训准备实例
状态: InProgress辅助状态:下载状态消息:下载输入数据
状态: InProgress辅助状态:培训状态消息:下载培训图像
状态: InProgress中学状态:培训状态消息:正在进行的培训
状态: InProgress二级状态:培训状态消息:培训图像下载完成。正在进行的培训
发布于 2021-03-29 08:35:16
经过大量的实验,我可以回答自己,除了字段LastModifiedTime之外,Sagemaker生成多个具有相同有效负载的事件。我不知道这是个错误,但在我看来不应该发生。这些规则是由AWS本身定义的,所以我无法自定义任何规则。如果启用分析器,情况就会更糟。没有什么我能做的,因为我已经张贴在官方AWS论坛多次没有任何运气。
发布于 2021-01-28 23:40:22
重复的消息可能发生,但应该是非常罕见的。你应该检查一下是否有重复的规则/时间表。您可以使用度量来标识正在调用/匹配的https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-monitoring-cloudwatch-metrics.html。
另一个原因可能是您的规则过于宽泛,并且与同一源的多个事件相匹配。您可以在同一条规则上为Cloudwatch日志创建另一个目标,以查看哪些事件得到匹配,以及是否需要进行任何筛选。
也有可能,sagemaker只是向EventBridge发送重复的事件,在这种情况下,您最好的选择是让我们ElastiCache暂时存储in并在您的lambda中检查。
https://stackoverflow.com/questions/65884046
复制相似问题