更好的aws lambda处理程序。
mutton的Python项目详细描述
羊肉
更好的python3awslambda处理程序。
目前,为aws lambda制作python处理程序的唯一选择是创建这样的函数:
def handler(event, context):
return True
如果开始处理多个处理程序,或者希望提供可配置且可重用的处理程序,则这并不理想。这个包提供了三个基类,Handler
、Request
和Response
处理程序。
Handler
类是一个callable,您可以在此基础上创建一个子类,并将其实例化,这就是您配置AWSλ调用的内容
你的Handler
必须有一个perform(self, request)
方法,这个方法包含你的处理程序的业务逻辑,Handler.__call__
执行这个函数并期望有一个Response
对象。
Response
对象的行为类似于字典和对象,名为serialized
的属性返回给awsλ。
perform(self, request)
中的request
参数是一个Request
对象,它包含AWSλ传递给处理程序的event
和context
参数将这些处理程序参数打包到一个对象中可以进行透明的转换,请参见^{
这个库的基础很小,我建议复习main classes来进一步理解如何使用这个包。
使用量
pip install mutton
importmuttonclassEchoHandler(mutton.Handler):"""Echo handler."""defperform(self,request,**k):"""Echo perform method."""response=mutton.Response()response.body=self.request.eventreturnresponseecho_handler=EchoHandler()# `echo_handler` is now a callable function you can map your AWS Lambda function to
发展
离开这个库并通过prs发送,如果您的两个prs合并并发布,我将考虑为贡献者提供应用程序。
pipenv sync --dev # setup
pipenv run pytest # test
支持的事件源
- [x]API网关
mutton.apig
- []s3
- []发电机
- []社交网站
- []SES
- []平方秒
- []干邑
- []CloudWatch日志、事件
帮助
我们希望得到更多活动来源的支持,我愿意接受公关。可以使用mutton.apig
子模块作为实现更多事件源的示例