2016-02-12 2 views
0

Я хочу сделать простую фильтрацию с помощью лямбда-скрипта, который будет отбрасывать письма на основе spamVerdict, virusVerdict и т. Д. Существует проект nodejs, который уже имеет большую часть функциональности Я хочу, но я не хочу использовать nodejs. Проверка документации python для объекта контекста указывает на то, что для меня нет метода «преуспеть», чтобы остановить обработку набора правил SES. Кроме того, просто позвонив: context.succeed({ "disposition" : "STOP_RULE_SET" }); выдает ошибку:Amazon Lambda inbound-ses-spam-filter (python)

"errorType": "AttributeError", 
"errorMessage": "'LambdaContext' object has no attribute 'succeed'" 

Я думал, что Python был «первым гражданином класса»? Как остановить обработку набора правил?

ответ

1

Я полагаю, что context.succeed() и аналогичные методы были добавлены в версию NodeJS Lambda из-за асинхронного программирования NodeJS.

Для функций Python Lambda кажется вам просто нужно return

1

Mark B is correct; Python не обращается к объекту контекста так, как это делает NodeJS. Скорее, вместо этого используется возврат функции обработчика. Там пример кода в сценарии я связан ниже, но для справки, останавливая набор правил выглядит следующим образом:

return {'disposition': 'stop_rule_set'} 

Там в Python план в работах, но сейчас я отправил версию Pythonized из NodeJS чертеж здесь:

https://github.com/dldorsey/python-ses/blob/master/lambda_function.py

Смежные вопросы