如何运行定期在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])

希望对您有所帮助!