如何在AWS CDK Java中向事件规则添加目标?

时间:2019-09-24 21:09:40

标签: aws-cdk

我已从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对象。

1 个答案:

答案 0 :(得分:0)

实际上,我为事件目标添加依赖项后就能够弄清

cloudwatchRule.addTarget(new LambdaFunction(lambdaFunction, LambdaFunctionProps.builder()
            .event(RuleTargetInput.fromText("{\"installmentStatus\" : \"SCHEDULED\" }"))
            .build()));