sagemaker.mlops.workflow.triggers#

The Trigger entity for EventBridge Integration.

Functions

validate_default_parameters_for_schedules(...)

Validate that pipeline parameters have defaults if it will interact with EventBridge.

Classes

PipelineSchedule([name, enabled, ...])

Pipeline Schedule trigger type used to create EventBridge Schedules for SageMaker Pipelines.

Trigger([name, enabled])

Abstract class representing a Pipeline Trigger

class sagemaker.mlops.workflow.triggers.PipelineSchedule(name: str | None = None, enabled: bool | None = True, start_date: datetime | None = None, at: datetime | None = None, rate: tuple | None = None, cron: str | None = None)[source]#

Bases: Trigger

Pipeline Schedule trigger type used to create EventBridge Schedules for SageMaker Pipelines.

To create a pipeline schedule, specify a single type using the at, rate, or cron parameters. For more information about EventBridge syntax, see Schedule types on EventBridge Scheduler.

Parameters:
  • start_date (datetime) – The start date of the schedule. Default is time.now().

  • at (datetime) – An “At” EventBridge expression. Defaults to UTC timezone. Note that if you use datetime.now(), the result is a snapshot of your current local time. Eventbridge requires a time in UTC format. You can convert the result of datetime.now() to UTC by using datetime.utcnow() or datetime.now(tz=pytz.utc). For example, you can create a time two minutes from now with the expression datetime.now(tz=pytz.utc) + timedelta(0, 120).

  • rate (tuple) – A “Rate” EventBridge expression. Format is (value, unit).

  • cron (str) – A “Cron” EventBridge expression. Format is “minutes hours day-of-month month day-of-week year”.

  • name (str) – The schedule name. Default is None.

  • enabled (boolean) – If the schedule is enabled. Defaults to True.

at: datetime | None#
cron: str | None#
enabled: bool | None#
name: str | None#
rate: tuple | None#
resolve_schedule_expression() str[source]#

Resolve schedule expression

Format schedule expression for an EventBridge client call from the specified

at, rate, or cron parameter. After resolution, if there are any othererrors in the syntax, this will throw an expected ValidationException from EventBridge.

Returns:

Correctly string formatted schedule expression based on type.

Return type:

schedule_expression

start_date: datetime | None#
class sagemaker.mlops.workflow.triggers.Trigger(name: str | None = None, enabled: bool | None = True)[source]#

Bases: object

Abstract class representing a Pipeline Trigger

name#

The name of the trigger, default to pipeline_name.

Type:

str

enabled#

The state of the schedule, default True resolves to ‘ENABLED’.

Type:

boolean

enabled: bool | None#
name: str | None#
resolve_trigger_name(pipeline_name: str) str[source]#

Resolve the schedule name given a parent pipeline.

Parameters:

pipeline_name (str) – Parent pipeline name

Returns:

Resolved schedule name.

Return type:

str

resolve_trigger_state() str[source]#

Helper method for Enabled/Disabled Resolution on Trigger States

Returns:

ENABLED/DISABLED string literal

Return type:

(str)

sagemaker.mlops.workflow.triggers.validate_default_parameters_for_schedules(parameters: Sequence[Parameter] | None)[source]#

Validate that pipeline parameters have defaults if it will interact with EventBridge.

Currently, we are not allowing scheduled executions to override pipeline parameters. This means that we must fail fast in the case that no default is specified.

Parameters:

parameters (Optional[Sequence[Parameter]]) – A list of Pipeline Parameters