I want to specify cloudwatch events as the trigger for Lambda in CDK

Asked 2 years ago, Updated 2 years ago, 46 views

I would like to specify cloudwatch events as the trigger for Lambda in CDK.
I don't know how to write.

I would appreciate it if you could let me know.

cdk ver:1.13.1
languages:Python

 fromaws_cdk import(
    core,
    aws_iam,
    aws_ec2,
    aws_stepfunctions,
    aws_lambda,
    aws_cloudwatch,
    aws_events,
    aws_events_targets,
)


class CdkPrjStack (core.Stack):

    def__init__(self, scope:core.Construct, id:str,**kwargs) - > None:
        super().__init__(scope, id, **kwargs)

        lambda_function=aws_lambda.Function(
            self,
            id = 'lambda',
            code=aws_lambda.Code.asset('trigger_lambda/lambda'),
            handler='lambda_function.lambda_handler',
            runtime=aws_lambda.Runtime.PYTHON_3_7,
            function_name='sfn-trigger',
            environment=None,
            timeout = core.Duration.seconds (900),
            reserved_concurrent_executions=1,
            vpc = None,
            vpc_subnets = None,
            role=None,
        )

        schedule=aws_events.Schedule.cron(
            year='*',
            month='*',
            day='*',
            hour = '15',
            minute='*',
        )

        rule=aws_events.Rule(
            self,
            id='cloudwatch-event',
            description = None,
            enabled = True,
            event_pattern = None,
            schedule = schedule,
            rule_name = 'ami-region-copy',
        )

        rule_target_input=aws_events.RuleTargetInput.bind(
            self,
            rule=rule,
        )

        aws_events_targets.LambdaFunction(
            handler=lambda_function,
            event=rule_target_input,
        )

python python3 aws

2022-09-30 16:23

1 Answers

This was resolved by specifying the rule as targets

 rule=aws_events.Rule(
            self,
            id='cloudwatch-event',
            description = None,
            enabled = True,
            event_pattern = None,
            schedule = schedule,
            rule_name = 'ami-region-copy',
            targets = [aws_events_targets.LambdaFunction(handler=lambda_function)],
        )


2022-09-30 16:23

If you have any answers or tips


© 2024 OneMinuteCode. All rights reserved.