As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Você pode programar suas execuções do Amazon SageMaker Pipelines usando a Amazon. EventBridge O Amazon SageMaker Pipelines é suportado como alvo na Amazon EventBridge. Isso permite que você inicie a execução do seu pipeline de construção de modelos com base em qualquer evento em seu barramento de eventos. Com EventBridge, você pode automatizar suas execuções de pipeline e responder automaticamente a eventos, como tarefas de treinamento ou mudanças no status do endpoint. Os eventos incluem um novo arquivo sendo carregado para seu bucket do Amazon S3, uma alteração no status do seu endpoint do Amazon SageMaker AI devido à deriva e tópicos do Amazon Simple Notification Service (SNS).
As seguintes ações do Pipelines podem ser iniciadas automaticamente:
-
StartPipelineExecution
Para obter mais informações sobre o agendamento de trabalhos de SageMaker IA, consulte Automatização da IA SageMaker com a Amazon. EventBridge
Agende um pipeline com a Amazon EventBridge
Para iniciar a execução de um pipeline com o Amazon CloudWatch Events, você deve criar uma EventBridge regra. Ao criar uma regra para eventos, você especifica uma ação de destino a ser tomada ao EventBridge receber um evento que corresponda à regra. Quando um evento corresponde à regra, EventBridge envia o evento para o destino especificado e inicia a ação definida na regra.
Os tutoriais a seguir mostram como agendar a execução de um pipeline EventBridge usando o EventBridge console ou o. AWS CLI
Pré-requisitos
-
Uma função que EventBridge pode ser assumida com a
SageMaker::StartPipelineExecution
permissão. Essa função pode ser criada automaticamente se você criar uma regra no EventBridge console; caso contrário, você mesmo precisará criar essa função. Para obter informações sobre como criar uma função de SageMaker IA, consulte SageMaker Funções. -
Um Amazon SageMaker AI Pipeline para programar. Para criar um pipeline de SageMaker IA da Amazon, consulte Definir um pipeline.
Crie uma EventBridge regra usando o EventBridge console
O procedimento a seguir mostra como criar uma EventBridge regra usando o EventBridge console.
Navegue até o console do EventBridge
. -
Selecione Regras no lado esquerdo.
-
Selecione
Create Rule
. -
Insira um nome e uma descrição para a regra.
-
Selecione como deseja iniciar essa regra. Você tem as seguintes opções para sua regra:
-
Padrão de evento: sua regra é iniciada quando ocorre um evento correspondente ao padrão. Você pode escolher um padrão predefinido que corresponda a um determinado tipo de evento ou criar um padrão personalizado. Se você selecionar um padrão predefinido, poderá editar o padrão para personalizá-lo. Para obter mais informações sobre padrões de eventos, consulte Padrões de CloudWatch eventos em eventos.
-
Programação: sua regra é iniciada regularmente em uma programação especificada. Você pode usar uma programação de taxa fixa que inicia regularmente por um número específico de minutos, horas ou semanas. Você também pode usar uma expressão cron para criar uma programação mais refinada, como “a primeira segunda-feira de cada mês, às 8h”. A programação não é compatível com um barramento de eventos parceiro ou personalizado.
-
-
Selecione o barramento de eventos desejado.
-
Selecione as metas a serem invocadas quando um evento corresponder ao seu padrão de eventos ou quando a programação for iniciada. Você pode adicionar até cinco destinos por regra. Selecione
SageMaker Pipeline
na lista suspensa destino. -
Selecione o pipeline que você deseja iniciar na lista suspensa do pipeline.
-
Adicione parâmetros para passar para a execução do pipeline usando um par de nome e valor. Os valores dos parâmetros podem ser estáticos ou dinâmicos. Para obter mais informações sobre os parâmetros do Amazon SageMaker AI Pipeline, consulte AWS::Events::Rule SagemakerPipelineParameters.
-
Valores estáticos são passados para a execução do pipeline toda vez que o pipeline é iniciado. Por exemplo, se
{"Name": "Instance_type", "Value": "ml.4xlarge"}
for especificado na lista de parâmetros, ele será passado como um parâmetroStartPipelineExecutionRequest
sempre que EventBridge iniciar o pipeline. -
Os valores dinâmicos são especificados usando um caminho JSON. EventBridge analisa o valor da carga útil de um evento e o passa para a execução do pipeline. Por exemplo:
$.detail.param.value
-
-
Selecione a função a ser usada para essa regra. Você pode usar uma função existente ou criar uma nova.
-
(Opcional) Adicionar tag.
-
Selecione
Create
para finalizar sua regra.
Sua regra agora está em vigor e pronta para iniciar suas execuções de pipeline.
Crie uma EventBridge regra usando o AWS CLI
O procedimento a seguir mostra como criar uma EventBridge regra usando AWS CLI o.
-
Crie uma regra a ser iniciada. Ao criar uma EventBridge regra usando o AWS CLI, você tem duas opções de como sua regra é iniciada: padrão de evento e programação.
-
Padrão de evento: sua regra é iniciada quando ocorre um evento correspondente ao padrão. Você pode escolher um padrão predefinido que corresponda a um determinado tipo de evento ou criar um padrão personalizado. Se você selecionar um padrão predefinido, poderá editar o padrão para personalizá-lo. Você pode criar uma regra com padrão de evento usando o seguinte comando:
aws events put-rule --name
<RULE_NAME>
----event-pattern<YOUR_EVENT_PATTERN>
--description<RULE_DESCRIPTION>
--role-arn<ROLE_TO_EXECUTE_PIPELINE>
--tags<TAGS>
-
Programação: sua regra é iniciada regularmente em uma programação especificada. Você pode usar uma programação de taxa fixa que inicia regularmente por um número específico de minutos, horas ou semanas. Você também pode usar uma expressão cron para criar uma programação mais refinada, como “a primeira segunda-feira de cada mês, às 8h”. A programação não é compatível com um barramento de eventos parceiro ou personalizado. Você pode criar um cluster usando a programação com o seguinte comando:
aws events put-rule --name
<RULE_NAME>
--schedule-expression<YOUR_CRON_EXPRESSION>
--description<RULE_DESCRIPTION>
--role-arn<ROLE_TO_EXECUTE_PIPELINE>
--tags<TAGS>
-
-
Adicione metas a serem invocadas quando um evento corresponder ao seu padrão de eventos ou quando a programação for iniciada. Você pode adicionar até cinco destinos por regra. Para cada destino, você deve especificar:
-
ARN: o ARN do recurso do seu pipeline.
-
ARN da função: o ARN da função EventBridge deve ser assumida para executar o pipeline.
-
Parâmetros: parâmetros do pipeline de SageMaker IA da Amazon a serem transmitidos.
-
-
Execute o comando a seguir para passar um pipeline de SageMaker IA da Amazon como alvo para sua regra usando put-targets:
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>
}]} }]"]
Agende um pipeline com o SDK do SageMaker Python
As seções a seguir mostram como configurar permissões para acessar EventBridge recursos e criar seu cronograma de pipeline usando o SDK do SageMaker Python.
Permissões obrigatórias
Você precisa ter as permissões necessárias para usar o programador de pipeline. Conclua as seguintes etapas para configurar suas permissões:
Anexe a seguinte política de privilégios mínimos à função do IAM usada para criar os acionadores do pipeline ou use a AWS política gerenciada.
AmazonEventBridgeSchedulerFullAccess
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "scheduler:ListSchedules", "scheduler:GetSchedule", "scheduler:CreateSchedule", "scheduler:UpdateSchedule", "scheduler:DeleteSchedule" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::*:role/*", "Condition": { "StringLike": { "iam:PassedToService": "scheduler.amazonaws.com" } } } ] }
Estabeleça uma relação de confiança EventBridge adicionando o diretor de serviço
scheduler.amazonaws.com
à política de confiança dessa função. Certifique-se de anexar a seguinte política de confiança à função de execução se você iniciar o notebook no SageMaker Studio.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": [
"scheduler.amazonaws.com",
"sagemaker.amazonaws.com"
]
},
"Action": "sts:AssumeRole"
}
]
}
Criar e programar um pipeline
Usando o construtor PipelineSchedule
, você pode programar um pipeline para ser executado uma vez ou em um intervalo predeterminado. Um cronograma de pipeline deve ser do tipo at
, rate
ou cron
. Esse conjunto de tipos de agendamento é uma extensão das opções de EventBridge agendamento. Para obter mais informações sobre como usar a PipelineSchedule
classe, consulte sagemaker.workflow.triggers. PipelineSchedulePipelineSchedule
.
from sagemaker.workflow.triggers import PipelineSchedule
# schedules a pipeline run for 12/13/2023 at time 10:15:20 UTC
my_datetime_schedule = PipelineSchedule(
name="<schedule-name>
",
at=datetime(2023, 12, 13, 10, 15, 20)
)
# schedules a pipeline run every 5 minutes
my_rate_schedule = PipelineSchedule(
name="<schedule-name>
",
rate=(5, "minutes")
)
# schedules a pipeline run at 10:15am UTC on the last Friday of each month during the years 2022 to 2023
my_cron_schedule = PipelineSchedule(
name="<schedule-name>
",
cron="15 10 ? * 6L 2022-2023"
)
nota
Se você criar um agendamento único e precisar acessar a hora atual, use datetime.utcnow()
em vez de datetime.now()
. O último não armazena o contexto da zona atual e resulta em um tempo incorreto passado para EventBridge.
Anexar o acionador ao seu pipeline
Para anexar seu PipelineSchedule
ao seu pipeline, invoque a chamada put_triggers
no objeto de pipeline criado com uma lista de acionadores. Se você receber um ARN de resposta, você criou com sucesso o cronograma em sua conta e EventBridge começa a invocar o funil de destino no horário ou na taxa especificada. Você deve especificar uma função com as permissões corretas para anexar acionadores a um pipeline principal. Se você não fornecer nenhuma, o Pipelines busca a função padrão usada para criar o pipeline a partir do arquivo de configuração.
O exemplo a seguir demonstra como anexar um cronograma a um pipeline.
scheduled_pipeline = Pipeline(
name="<pipeline-name>
",
steps=[...],
sagemaker_session=<sagemaker-session>
,
)
custom_schedule = PipelineSchedule(
name="<schedule-name>
",
at=datetime(year=2023, month=12, date=25, hour=10, minute=30, second=30)
)
scheduled_pipeline.put_triggers(triggers=[custom_schedule], role_arn=<role>
)
Descrever os acionadores atuais
Para recuperar informações sobre os acionadores do pipeline criado, você pode invocar a API describe_trigger()
com o nome do acionador. Esse comando retorna detalhes sobre a expressão de agendamento criada, como horário de início, estado ativado e outras informações úteis. O trecho a seguir mostra um exemplo de invocação:
scheduled_pipeline.describe_trigger(name="<schedule-name>
")
Recursos de remoção de acionador
Antes de excluir seu pipeline, limpe os acionadores existentes para evitar um vazamento de recursos em sua conta. Você deve excluir os acionadores antes de destruir o pipeline principal. Você pode excluir seus acionadores passando uma lista de nomes de acionadores para a API delete_triggers
. O trecho a seguir demonstra como excluir acionadores.
pipeline.delete_triggers(trigger_names=["<schedule-name>
"])
nota
Lembre-se das seguintes limitações ao excluir os acionadores:
A opção de excluir os gatilhos especificando os nomes dos acionadores só está disponível no SDK do Python SageMaker . Excluir o pipeline na CLI ou em uma chamada de API
DeletePipeline
não exclui seus acionadores. Como resultado, os gatilhos se tornam órfãos e a SageMaker IA tenta iniciar a execução de um pipeline inexistente.