我已从cdk的初始版本迁移到最新版本。由于发生了很多变化,因此我不得不更改了很多代码。我有一个事件规则,该规则会在特定的时间表上触发lambda。在旧版本中,我可以使用json输入模板将lambda添加为目标。
如何使用最新版本。我正在用Java开发
Function lambdaFunction = new Function(this, functionName + "lambda", FunctionProps.builder()
.handler(functionName + ".handler")
.functionName(functionName + "-" + parameter.getValueAsString())
.runtime(Runtime.NODEJS_8_10)
.code(Code.bucket(lambdaS3Bucket, collectPaymentsS3BucketKey.getValueAsString()))
.role(lambdaExecutionRole)
.timeout(Duration.seconds(60))
.environment(environmentMap)
.build());
Rule cloudwatchRule = new Rule(this, "id", RuleProps.builder()
.description("this triggers to collect installment payments scheduled everyday")
.ruleName("smartpay-schedule-payments" + "-" + parameter.getValueAsString())
.schedule(Schedule.expression("0/5 * * * ? *"))
.build());
我正在尝试这个
cloudwatchRule.addTarget(lambdaFunction);
但不起作用。如何在AWS CDK Java中创建IRuleTarget对象。
答案 0 :(得分:0)
实际上,我为事件目标添加依赖项后就能够弄清
cloudwatchRule.addTarget(new LambdaFunction(lambdaFunction, LambdaFunctionProps.builder()
.event(RuleTargetInput.fromText("{\"installmentStatus\" : \"SCHEDULED\" }"))
.build()));