Как добавить цели в правило события в AWS CDK Java? - PullRequest
0 голосов
/ 25 сентября 2019

Я перешел с начальной версии CDK на последнюю версию.Поскольку многое изменилось, мне пришлось многое изменить в моем коде.У меня было правило события, которое запускает лямбду по определенному расписанию.В более старой версии я мог добавить лямбду в качестве цели с шаблоном ввода json.

Как это сделать с последними версиями.Я занимаюсь разработкой на 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);

, но это не работает.Как создать объект IRuleTarget в aws cdk java.

1 Ответ

0 голосов
/ 25 сентября 2019

На самом деле, я смог выяснить, после того как я добавил зависимость для событий-целей

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