in cron-inference/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={"endpoint_name":endpoint_name, # CHANGE TO YOUR ENDPOINT NAME!!
"content_type":"text/csv",
"input_data":input_data,
"bucket":bucket,
"key":key}
)
# Add sagemaker role
lambdaFn.add_to_role_policy(aws_iam.PolicyStatement(
actions = ['sagemaker:InvokeEndpoint',],
resources = ['arn:aws:sagemaker:{}:{}:endpoint/{}'.format(my_region,my_acc_id,endpoint_name),]))
#Add s3 role
lambdaFn.add_to_role_policy(aws_iam.PolicyStatement(
actions = ['s3:GetObject',],
resources =['arn:aws:s3:::{}'.format(bucket),]))
# 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))