【问题标题】:AWS Eventbridge Events (Sagemaker training job status change) fired multiple times with the same payloadAWS Eventbridge 事件(Sagemaker 训练作业状态更改)使用相同的有效负载多次触发
【发布时间】:2021-03-29 16:35:16
【问题描述】:

我在 cloudwatch 中为 Sagemaker 培训作业状态更改创建了一个事件规则,以监控我的培训作业。然后我使用这个事件来触发一个 lambda 函数,该函数将电报组中的消息作为机器人发送。这样,每次培训作业之一更改其状态时,我都会收到一条消息。它可以工作,但事件存在问题,它们会以相同的确切有效负载多次触发,因此我收到大量重复消息。 由于所有有效载荷都是相同的(LastModifiedTime 字段除外),我无法在 lambda 中过滤它们。不幸的是,我没有 AWS 开发人员计划,因此我无法获得亚马逊的支持。有什么想法吗?

编辑

没有重复的规则/事件。我还注意到启用 Sagemaker 分析器(现在默认情况下)会导致相同规则调用的数量激增。除了LastModifiedTime 之外,它们都具有相同的有效负载,所以我怀疑AWS 中存在一个错误。一种解决方案可能是在 lambda 上实现某种数据保留,并检查调用是否已被处理,但我不想让应该非常简单的事情复杂化。刚尝试启动一个新的训练作业并得到这个序列(我只报告我解析的字段):

状态:进行中 次要状态:开始 状态消息:正在启动请求的 ML 实例

状态:进行中 次要状态:开始 状态消息:开始训练作业

状态:进行中 次要状态:开始 状态消息:开始训练作业

状态:进行中 次要状态:开始 状态消息:开始训练作业

状态:进行中 次要状态:开始 状态消息:准备训练实例

状态:进行中 次要状态:正在下载 状态消息:正在下载输入数据

状态:进行中 次要状态:培训 状态消息:正在下载训练图像

状态:进行中 次要状态:培训 状态消息:培训进行中

状态:进行中 次要状态:培训 状态消息:训练图像下载完成。培训进行中

【问题讨论】:

    标签: amazon-web-services amazon-sagemaker aws-event-bridge


    【解决方案1】:

    重复消息可能会发生,但应该非常少见。您应该检查是否有任何重复的规则/时间表。您可以使用指标来识别正在调用/匹配的内容https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-monitoring-cloudwatch-metrics.html。

    另一个原因可能是您的规则过于宽泛,并且匹配同一来源的多个事件。您可以在 Cloudwatch Logs 的同一规则上创建另一个目标,以查看匹配的事件以及是否需要进行任何过滤。

    也有可能 sagemaker 只是将重复的事件发送到 EventBridge,在这种情况下,您最好的选择是让我们 ElastiCache 临时存储 id 并在您的 lambda 中检查。

    【讨论】:

      【解决方案2】:

      经过大量实验后,我可以回答自己,Sagemaker 使用相同的有效负载生成多个事件,但字段 LastModifiedTime 除外。我不知道这是一个错误,但在我看来不应该发生。这些是 AWS 自己定义的规则,所以我无法自定义。如果启用分析器,情况会更糟。 我无能为力,因为我已经多次在官方 AWS 论坛上发帖,但运气不佳。

      【讨论】:

        猜你喜欢
        • 2021-02-08
        • 2022-01-27
        • 2021-04-18
        • 2018-10-04
        • 1970-01-01
        • 2021-02-14
        • 2020-05-25
        • 2020-07-17
        • 2022-08-02
        相关资源
        最近更新 更多