本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
亚马逊 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 控制台。
导航到EventBridge 控制台
. -
SelectRule在左侧。
-
Select
Create Rule. -
为您的规则输入名称和描述。
-
选择您希望如何启动此规则。您的规则有以下选择:
-
事件模式:当发生与模式匹配的事件时,您的规则将启动。您可以选择与特定类型的事件匹配的预定义模式,也可以创建自定义模式。如果选择了预定义的模式,则可以编辑模式以对其进行自定义。有关事件模式的更多信息,请参阅中的事件模式 CloudWatch 事件.
-
Schedule:您的规则将按照指定的时间表定期启动。您可以使用固定费率计划,定期启动指定的分钟、小时或周数。您还可以使用Cron 表达式以创建更精细的时间表,例如 “每个月的第一个星期一上午 8 点”。自定义事件总线或合作伙伴事件总线不支持时间表。
-
-
选择你想要的活动总线。
-
选择当事件与您的事件模式匹配或启动时间表时要调用的目标。每个规则最多可以添加 5 个目标。Select
SageMaker Pipeline在目标下拉列表中。 -
从管道下拉列表中选择要启动的管道。
-
使用名称和值对添加要传递给管道执行的参数。参数值可以是静态的或动态的。有关 Amazon 的更多信息 SageMaker 管道参数,请参阅AWS::Events::Rule SageMakerPipeline 参数.
-
每次启动管道时,静态值都会传递给管道执行。例如,如果
{"Name": "Instance_type", "Value": "ml.4xlarge"}在参数列表中指定,然后它作为参数传入StartPipelineExecutionRequest每次 EventBridge 启动管道。 -
动态值是使用 JSON 路径指定的。 EventBridge 从事件负载中解析值,然后将其传递给管道执行。例如:
$.detail.param.value。
-
-
选择用于此规则的角色。您可以使用现有角色或创建一个新角色。
-
(可选)添加标签。
-
Select
Create以最终确定你的规则。
您的规则现已生效,可以启动管道执行。
创建 EventBridge 规则使用Amazon CLI
以下过程演示如何创建 EventBridge 规则使用Amazon CLI.
-
创建要启动的规则。创建时 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>
-
-
添加目标,以便在事件与您的事件模式匹配或时间表启动时调用。每个规则最多可以添加 5 个目标。 对于每个目标,您必须指定:
-
ARN:管道的资源 ARN。
-
角色 ARN:角色的 ARN EventBridge 应该假设执行管道。
-
参数: 亚马逊 SageMaker 要传递的管道参数。
-
-
运行以下命令以传递 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>}]} }]"]