【问题标题】:Cannot add a Lambda target to an existing CloudWatch rule无法将 Lambda 目标添加到现有 CloudWatch 规则
【发布时间】:2020-05-04 00:17:00
【问题描述】:

我想将 Lambda 目标添加到现有 CloudWatch 规则。我使用以下来引用现有规则:

rule = events.Rule.from_event_rule_arn(self, "Rule",event_rule_arn='')

稍后我添加一个目标:

rule.add_target(targets.LambdaFunction(lambdaFn))

当我执行cdk synthdeploy 时,我收到以下错误:

AttributeError: '+' 对象没有属性 'add_target'

我知道IRule 元素没有该方法,但我找不到明确的方法来实现我所需要的。

我也尝试在 Lambda 中使用事件源,但出现以下错误:

无法识别的事件源,必须是 kinesis、dynamodb 流或 sqs。

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-cloudwatch aws-cdk


    【解决方案1】:

    我认为这是不可能的。您需要引用 lambda 函数并从规则所属的堆栈中管理规则。

    【讨论】:

      【解决方案2】:

      正如 MilanG 建议的那样,这是不可能的。

      我的用例需要创建多个 Lambda 函数并为其设置相同的触发器,而 CloudWatch 规则不适合它,因为每个规则有 5 个目标硬限制。我改用 SNS 如下:

      sns_topic = aws_sns.Topic.from_topic_arn(scope, id, topic_arn=config)
      
      lambdaFn.add_event_source(aws_lambda_event_sources.SnsEventSource(sns_topic))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-12
        • 1970-01-01
        • 1970-01-01
        • 2021-03-11
        • 1970-01-01
        • 1970-01-01
        • 2019-10-15
        • 2021-03-20
        相关资源
        最近更新 更多