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

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

亚马逊EventBridge集成

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

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

  • StartPipelineExecution

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

与亚马逊一起安排管道EventBridge

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

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

先决条件

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

  • AmazonSageMaker待安排的管道。要创建 AmazonSageMaker管道,请参阅定义管道.

创建EventBridge使用规则EventBridge控制台

以下步骤将说明如何创建EventBridge使用规则EventBridge控制台。 

  1. 导航到 EventBridge 控制台

  2. SelectRule在左侧。

  3. Select Create Rule.

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

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

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

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

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

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

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

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

    • 每次启动管道时,静态值都会传递给管道执行。例如,如果{"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:角色的 ARNEventBridge应该假设执行管道。

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

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

    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>}]} }]"]