AWS: лямбда: программно добавлять триггер SNS - PullRequest
0 голосов
/ 12 марта 2020

Мне нужно добавить триггер на основе 'SNS' к моей функции Lambda, но create-event-source-mapping - AWS Справочник по командам CLI говорит только DynamoDB, Kinesis, SQS.

Команда aws lambda create-event-source-mapping для триггеров на основе SNS, S3 и c завершается неудачно с --event-source-arn:

Произошла ошибка (InvalidParameterValueException) при вызове операции CreateEventSourceMapping: должен быть указан нераспознанный источник события кинезис, динамодб стрим или кв. Неподдерживаемый источник arn

Однако это можно сделать с помощью AWS console.

Есть мысли?

Ответы [ 2 ]

3 голосов
/ 13 марта 2020

Чтобы SNS запускал лямбду, лямбда должна подписаться на топи SNS c. Вы можете обратиться к Tutorial: Использование AWS Lambda с Amazon Simple Notification Service при получении Lambda, запускаемой, когда сообщение публикуется в topi c.

SNS.
0 голосов
/ 13 марта 2020

* предоставленные ссылки lib конструкции cdk находятся в python, но вы можете использовать язык или ваш выбор

Чтобы установить триггер sns на Lambda, вы должны выполнить следующие действия: 1) создать SNS Тема 2) создание функции Lambda 3) создание источника событий Lambda 4) интеграция всех

Вы можете использовать AWS CDK, чтобы сделать все это Создание SNS Topi c: https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_sns/Topic.html

Создание лямбда-функции https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_lambda/Function.html

Использование functuon_obj.add_ecent_source (SNS_obj) для интеграции всех.

Разрешения IAM для вызова вашего Функция для события sns будет автоматически обработана, и вы увидите ее на вкладке Lambda permissions на консоли.

Отметьте ответ правильно, если это поможет.

...