如何运行定期在CDK中创建Lambda?
How to run Lambda created in CDK on a regular basis?
正如标题所说 - 我在 Python CDK 中创建了一个 Lambda,我想知道如何定期触发它(例如每天一次)。
我确信这是可能的,但我是 CDK 的新手,而且我正在努力寻找解决文档的方法。据我所知,它将使用某种事件触发器 - 但我不确定如何使用它。
有人可以帮忙吗?
当然 - 一旦掌握了它就相当简单。
首先,确保导入正确的库:
from aws_cdk import core, aws_events, aws_events_targets
然后您需要创建 schedule class and use the core.Duration
(docs for that here) 的实例来设置长度。比如说 1 天:
lambda_schedule = aws_events.Schedule.rate(core.Duration.days(1))
然后您要创建 event target - 这是对您之前在 CDK 中创建的 Lambda 的实际引用:
event_lambda_target = aws_events_targets.LambdaFunction(handler=lambda_defined_in_cdk_here)
最后,您将它们全部绑定到一个 aws_events.Rule
中,如下所示:
lambda_cw_event = aws_events.Rule(
self,
"Rule_ID_Here",
description=
"The once per day CloudWatch event trigger for the Lambda",
enabled=True,
schedule=lambda_schedule,
targets=[event_lambda_target])
希望对您有所帮助!
正如标题所说 - 我在 Python CDK 中创建了一个 Lambda,我想知道如何定期触发它(例如每天一次)。
我确信这是可能的,但我是 CDK 的新手,而且我正在努力寻找解决文档的方法。据我所知,它将使用某种事件触发器 - 但我不确定如何使用它。
有人可以帮忙吗?
当然 - 一旦掌握了它就相当简单。
首先,确保导入正确的库:
from aws_cdk import core, aws_events, aws_events_targets
然后您需要创建 schedule class and use the core.Duration
(docs for that here) 的实例来设置长度。比如说 1 天:
lambda_schedule = aws_events.Schedule.rate(core.Duration.days(1))
然后您要创建 event target - 这是对您之前在 CDK 中创建的 Lambda 的实际引用:
event_lambda_target = aws_events_targets.LambdaFunction(handler=lambda_defined_in_cdk_here)
最后,您将它们全部绑定到一个 aws_events.Rule
中,如下所示:
lambda_cw_event = aws_events.Rule(
self,
"Rule_ID_Here",
description=
"The once per day CloudWatch event trigger for the Lambda",
enabled=True,
schedule=lambda_schedule,
targets=[event_lambda_target])
希望对您有所帮助!