简体   繁体   English

如何使用 aws cdk (JAVA) 每 15 分钟创建一个 cloudwatch 规则来触发 lambda function?

[英]How can i create a cloudwatch rule to trigger a lambda function every 15 minutes using aws cdk (JAVA)?

I am trying to create a cloudwatch rule to trigger my lambda function using java aws cdk.我正在尝试使用 java aws cdk 创建一个 cloudwatch 规则来触发我的 lambda function。 I found something like below but it give me error.我发现了类似下面的东西,但它给了我错误。

Code:代码:

Rule rule =
                Rule.Builder.create(this, "rule-" + id)
                        .schedule(Schedule.rate(Duration.minutes(15)))
                        .description("CloudWatch Event" + id)
                        .enabled(true)
                        .build();

        //rule.addTarget(alias);

        CfnEventSourceMapping eventSource = CfnEventSourceMapping.Builder
                .create(this, "EventSource")
                .functionName(lambda.getFunctionName())
                .eventSourceArn(rule.getRuleArn())
                .enabled(true)
                .build();

error:错误:

Invalid request provided: Unrecognized event source, must be kinesis, dynamodb stream or sqs.

Please guide me here.请在这里指导我。 Thank you.谢谢你。

You probably have your lambda created already but here is a working example where we create the lambda then add it to the cloudwatch rule so lambda will be triggered every 15 minutes.您可能已经创建了 lambda,但这里是一个工作示例,我们创建 lambda 然后将其添加到 cloudwatch 规则,因此 lambda 将每 15 分钟触发一次。

Function lambda =
            Function.Builder.create(this, "my-lambda-name")
                    .runtime(Runtime.JAVA_11)
                    .code(LambdaCode)
                    .functionName("my-lambda-name")
                    .handler("handler_name")
                    .role(role)
                    .memorySize(3008)
                    .timeout(Duration.minutes(15))
                    .environment(LAMBDA_ENV)
                    .build();
    Rule rule =
                Rule.Builder.create(this, "rule-" + id)
                        .schedule(Schedule.rate(Duration.minutes(15)))
                        .description("CloudWatch Event" + id)
                        .build();

    rule.addTarget(new LambdaFunction(lambda));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我可以从该 function 中为 AWS lambda function 创建/删除 cloudwatch 事件规则吗? - Can I create/delete a cloudwatch event rule for an AWS lambda function from within that function? 如何使用 aws SDK 为 AWS Lambda 函数创建 CloudWatch 日志触发器? - How to create CloudWatch logs trigger for AWS Lambda function using aws SDK? 来自 CloudWatch 规则的 AWS SAM Lambda 函数触发器 - AWS SAM Lambda function trigger from CloudWatch Rule 如何使用AWS Lambda函数为AWS RDS创建触发器? - How can I create a trigger for AWS RDS with a AWS Lambda function? 给定aws-lambda,如何使用boto3更改与其相关的cloudwatch规则? - Given an aws-lambda, how can I change the cloudwatch rule associated with it using boto3? 如何使用 AWS CDK 将现有 Lambda 函数的别名指定为 DynamoDB 触发器? - How do I specify an existing Lambda function's alias as a DynamoDB trigger using the AWS CDK? 如何确定 AWS Lambda 是使用 AWS CDK 创建的? - How can I identify that an AWS Lambda was created using the AWS CDK? AWS Terraform CloudWatch规则作为Lambda触发器 - aws terraform cloudwatch rule as lambda trigger 创建针对使用 AWS CDK 在单独堆栈中定义的 lambda function 的 EventBridge 规则 - Create an EventBridge rule that targets a lambda function defined in a separate stack using AWS CDK 如何使用aws ruby​​ SDK为AWS Lambda创建CloudWatch日志触发器? - How to create CloudWatch logs trigger for AWS Lambda using aws ruby SDK?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM