亚马逊 EventBridge 集成 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊 EventBridge 集成

你可以安排你的亚马逊 SageMaker 模型构建管道处决使用Amazon EventBridge. 亚马逊 SageMaker 在中支持模型构建管道作为目标Amazon EventBridge. 这允许您根据事件总线中的任何事件启动模型构建管道的执行。借助 EventBridge,您可以自动执行管道,并自动响应培训作业或终端状态更改等事件。事件包括正在上传到 Amazon S3 存储桶的新文件、亚马逊状态的变化 SageMaker 由于漂移造成的端点,以及Amazon Simple Notification Service(SNS) 主题。

以下 SageMaker 可以自动启动管道操作: 

  • StartPipelineExecution

有关日程安排的更多信息 SageMaker 工作,请参阅使用 实现自动化 SageMaker 使用 Amazon EventBridge。

使用 Amazon EventBridge 安排管道

通过亚马逊启动管道执行 CloudWatch 活动,你必须创建 EventBridge规则. 在为事件创建规则时,您可以指定要在以下时间执行的目标操作。 EventBridge 接收与规则匹配的事件。当事件符合规则时, EventBridge 将事件发送到指定的目标并启动规则中定义的操作。

以下教程演示如何使用计划管道执行。 EventBridge 使用 EventBridge 控制台或Amazon CLI. 

先决条件

  • 一个角色 EventBridge 可以假设SageMaker::StartPipelineExecution允许。如果您从 EventBridge 控制台创建规则,则可以自动创建此角色;否则,您需要自己创建此角色。 有关创建 SageMaker 角色,请参阅SageMaker 角色.

  • Amazon SageMaker 待安排的管道。要创建亚马逊 SageMaker 管道,请参阅定义管道.

创建 EventBridge 使用 EventBridge 控制台的规则

以下过程演示如何创建 EventBridge 规则使用 EventBridge 控制台。 

  1. 导航到EventBridge 控制台.

  2. SelectRule在左侧。

  3. Select Create Rule.

  4. 为您的规则输入名称和描述。

  5. 选择您希望如何启动此规则。您的规则有以下选择:

    • 事件模式:当发生与模式匹配的事件时,您的规则将启动。您可以选择与特定类型的事件匹配的预定义模式,也可以创建自定义模式。如果选择了预定义的模式,则可以编辑模式以对其进行自定义。有关事件模式的更多信息,请参阅中的事件模式 CloudWatch 事件.

    • Schedule:您的规则将按照指定的时间表定期启动。您可以使用固定费率计划,定期启动指定的分钟、小时或周数。您还可以使用Cron 表达式以创建更精细的时间表,例如 “每个月的第一个星期一上午 8 点”。自定义事件总线或合作伙伴事件总线不支持时间表。

  6. 选择你想要的活动总线。

  7. 选择当事件与您的事件模式匹配或启动时间表时要调用的目标。每个规则最多可以添加 5 个目标。SelectSageMaker Pipeline在目标下拉列表中。

  8. 从管道下拉列表中选择要启动的管道。

  9. 使用名称和值对添加要传递给管道执行的参数。参数值可以是静态的或动态的。有关 Amazon 的更多信息 SageMaker 管道参数,请参阅AWS::Events::Rule SageMakerPipeline 参数.

    • 每次启动管道时,静态值都会传递给管道执行。例如,如果{"Name": "Instance_type", "Value": "ml.4xlarge"}在参数列表中指定,然后它作为参数传入StartPipelineExecutionRequest每次 EventBridge 启动管道。

    • 动态值是使用 JSON 路径指定的。 EventBridge 从事件负载中解析值,然后将其传递给管道执行。例如:$.detail.param.value

  10. 选择用于此规则的角色。您可以使用现有角色或创建一个新角色。

  11. (可选)添加标签。

  12. SelectCreate以最终确定你的规则。

您的规则现已生效,可以启动管道执行。

创建 EventBridge 规则使用Amazon CLI

以下过程演示如何创建 EventBridge 规则使用Amazon CLI.

  1. 创建要启动的规则。创建时 EventBridge 规则使用Amazon CLI,您有两种选择来确定规则的启动方式、事件模式和时间表。

    • 事件模式:当发生与模式匹配的事件时,您的规则将启动。您可以选择与特定类型的事件匹配的预定义模式,也可以创建自定义模式。如果选择了预定义的模式,则可以编辑模式以对其进行自定义。  您可以使用以下命令创建具有事件模式的规则:

      aws events put-rule --name <RULE_NAME> ----event-pattern <YOUR_EVENT_PATTERN> --description <RULE_DESCRIPTION> --role-arn <ROLE_TO_EXECUTE_PIPELINE> --tags <TAGS>
    • Schedule:您的规则将按照指定的时间表定期启动。您可以使用固定费率计划,定期启动指定的分钟、小时或周数。您还可以使用 cron 表达式来创建更精细的时间表,例如 “每月第一个星期一上午 8 点”。自定义事件总线或合作伙伴事件总线不支持时间表。您可以使用以下命令创建具有计划的规则:

      aws events put-rule --name <RULE_NAME> --schedule-expression <YOUR_CRON_EXPRESSION> --description <RULE_DESCRIPTION> --role-arn <ROLE_TO_EXECUTE_PIPELINE> --tags <TAGS>
  2. 添加目标,以便在事件与您的事件模式匹配或时间表启动时调用。每个规则最多可以添加 5 个目标。  对于每个目标,您必须指定: 

    • ARN:管道的资源 ARN。

    • 角色 ARN:角色的 ARN EventBridge 应该假设执行管道。

    • 参数:  亚马逊 SageMaker 要传递的管道参数。

  3. 运行以下命令以传递 Amazon SageMaker 使用管道作为规则的目标放置目标

    aws events put-targets --rule <RULE_NAME> --event-bus-name <EVENT_BUS_NAME> --targets "[{\"Id\": <ID>, \"Arn\": <RESOURCE_ARN>, \"RoleArn\": <ROLE_ARN>, \"SageMakerPipelineParameter\": { \"SageMakerParameterList\": [{\"Name\": <NAME>, \"Value\": <VALUE>}]} }]"]