Невозможно добавить цель Lambda в существующее правило CloudWatch - PullRequest
1 голос
/ 04 мая 2020

Я хочу добавить цель Lambda в существующее правило CloudWatch. Я использовал следующее для ссылки на существующее правило:

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

Позже я добавляю цель с:

rule.add_target(targets.LambdaFunction(lambdaFn))

Когда я выполняю cdk synth или deploy, я получаю следующая ошибка:

AttributeError: у объекта «+» нет атрибута «add_target»

Я знаю, что у элемента IRule нет этого метода, но я не могу найти четкий способ, как добиться того, что мне нужно.

Я также пытаюсь использовать источник событий в Lambda, но получаю следующую ошибку:

Нераспознанный источник событий, должен быть кинесисом, динамическим потоком или sqs.

Ответы [ 2 ]

0 голосов
/ 07 мая 2020

Как предполагает 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))
0 голосов
/ 06 мая 2020

Я не думаю, что это возможно. Вам нужно сослаться на лямбда-функцию и управлять правилом из стека, к которому принадлежит правило.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...