有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

aws cdk如何在aws cdk java中向事件规则添加目标?

我已经从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) 个答案

  1. # 1 楼答案

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

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