in cron-train/app.py [0:0]
def __init__(self, app: core.App, id: str) -> None:
super().__init__(app, id)
with open("lambda-handler.py", encoding="utf8") as fp:
handler_code = fp.read()
lambdaFn = lambda_.Function(
self,
"Singleton",
code=lambda_.InlineCode(handler_code),
handler="index.lambda_handler",
timeout=core.Duration.seconds(300),
runtime=lambda_.Runtime.PYTHON_3_7,
environment={"base_name":base_name,
"max_depth":max_depth,
"container":container,
"role_arn":role_arn,
"s3_input_train":s3_input_train,
"s3_input_validation":s3_input_validation,
"s3_output":s3_output}
)
lambdaFn.add_to_role_policy(aws_iam.PolicyStatement(actions = ['sagemaker:CreateTrainingJob',],
resources=[role_arn,]))
# Run every day at 6PM UTC
# See https://docs.aws.amazon.com/lambda/latest/dg/tutorial-scheduled-events-schedule-expressions.html
rule = events.Rule(
self, "Rule",
schedule=events.Schedule.cron(
minute='0',
hour='18',
month='*',
week_day='MON-FRI',
year='*'),
)
rule.add_target(targets.LambdaFunction(lambdaFn))