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