一个库/包中多个aws lambda的框架

lambada的Python项目详细描述


…图片::https://img.shields.io/travis/superpedestrian/lambada.svg
:目标:https://travis ci.org/superpedestrian/lambada
:alt:build status
…图片::https://img.shields.io/covertalls/superpedestrian/lambada.svg
:目标:https://covertalls.io/r/superpedestrian/lambada
:alt:coverage
。图片::https://img.shields.io/pypi/v/lambada.svg
:目标:https://pypi.python.org/pypi/lambada
:alt:"pypi包"
…图片::https://readthedocs.org/projects/lambada/badge/?version=latest
:目标:http://lambada.readthedocs.io/en/latest/?徽章=最新
:alt:最新文档
…图片::https://readthedocs.org/projects/lambada/badge/?version=release
:目标:http://lambada.readthedocs.io/en/release/?badge=release
:a lt:release documentation


==========



创建最小lambada应用程序所需做的就是将以下内容添加到名为"lambda.py"的文件中:

……代码块::python


es lambada包
(分别为最新版本或开发版本的"lambada"或"https://github.com/superpedestrian/lambada"。

与flask应用程序非常相似,我们现在有一个python文件,配置为上载名为"test"的lambda函数``在"us-east-1"区域的aws
帐户中(因为这是默认值),并且
处理程序将被设置为"lamda.tune",再次设置为默认值。



首先,它为您提供了一个命令行工具集,用于测试、列出和发布多个函数到aws,作为具有一个代码基的独立lambda函数。

既然您有了代码,就可以在运行完"pip install-r requirements.txt"之后运行"lambda"命令行工具类似于"lambda list"这样的东西:







:::


事件:hello


,它在运行指定的
*舞者*


之前创建一个伪造的aws上下文对象,从那里我们还可以打包函数(相同的包对所有定义的*dancer*/lambda函数都有效)。因此,在不配置任何aws凭据的情况下,我们可以运行``lambada package``来创建一个zip
文件,其中包含打包的所有需求(来自先前创建的
``requirements.txt``),您可以通过web界面或类似方式手动上载到aws lambda
。e您的aws api凭据设置和正确的
权限,您还可以运行"lambada upload"来为每个*dancer*创建和/或使用打包的代码对函数进行版本化


不同的需求、vpc、超时、安全性
配置和内存需求都在同一个可部署的
包中,如下所示。我们将继续调用
我们的文件``fouronthefloor.py``作为
自定义的参考,因此``fouronthefloor.py`
的内容看起来像:

代码块::python

floor.chart',
role='arn:aws:iam:xxxxxxx:role/lambda',
region='us-west-2',
timeout=60,
memory=128




@chart.dancer
def test\u lambda(event,context):
print('event:{}'。format(event))



@chart。舞者(
name='not_the_function_name',
description='cool description',
memory=512,
region='us-east-1',
requirements=['requirements.txt','xtra_requirements.txt']
def cool_oneoff(event,context):
print('wow,so太多的记忆了!在一个差异区域和额外需求中!)


@chart.dancer(内存=1024,超时=5)
def bob戋loblaw(事件,戋):
print('so a great reference!')

它给出了一个"lambada列表",看起来像:






_函数名:
描述:酷描述
区域:us-east-1
要求:['requirements.txt','xtra_requirements.txt']
内存:512

都有一个"lambada upload"命令。这样一个简单的"诱惑之舞"。


bouncers
==


例如api密钥、密码、证书等。通常,使用源外树配置文件或环境变量指定它们比较好。为了实现这一点,我们有了
``bouncer``对象的概念。默认情况下,当您使用默认配置实例化"lambada"类时,会创建此配置对象,您可以使用现成的配置。默认
:py:obj:`lambada.bouncer`对象在
以下路径中查找yaml配置文件:

-由环境变量``bouncer_config``
-当前工作目录``lambada.yml`
-您的``home``目录`````.lambada.yml`
-``/etc/lambada.yml``

,它按照这个顺序执行,只要成功找到一个就终止。



ix)弹跳器配置。这意味着您可以在没有任何代码的情况下向lambada
项目添加配置,只需将say``bouncer`uapi`key``添加到本地
配置中,并在代码中将其引用为
``tune.bouncer.api`key``(假设'`tune``是您为lambada类选择的变量


类似地,如果您定义一个"lambada.yml"配置文件,它看起来像:

…代码块::yaml

api-key:1234abcd


api-key的访问方式与"tune.bouncer.api-key"的访问方式相同。


当为aws打包并写入lambda.yml
配置时,将读取lambda上的配置,并在lambda中运行时首先查找该配置。





``保镖``到``lambada``创建时的对象。它允许您直接传入配置的路径和/或更改环境变量前缀,例如:

…代码块::python

来自lambada import bouncer,lambada

bouncer=bouncer(config='foobar.yml',env戋prefix='cool戋')
tune=lambada(bouncer=bouncer,role=bouncer.role)

@tune.dancer
def test戋lambada(event,context):
print(bouncer.role)


ambada``对象

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
arduino JAVA串行数据接收非法字符   logging Create log method在java中记录当前执行方法的参数及其值   使用maven使用参数构建java项目   java在尝试失败后关闭   从excel工作表内容生成java xml   java Apache HttpClient:setConnectTimeout()vs.setConnectionTimeOlive()vs.setSocketTimeout()   Java的性能。forEach(列表::添加)vs。collect(Collectors.toList())   java生成给定数字的金字塔?   netbeans 8.2,windows 10上的java调试器错误   java glassfish部署错误   用java C++加密CryptoAPI SIMPLEBLOB   java Tomee jpa设置   需要使用Java/Selenium或任何语言从Googe TAG manager提取数据层信息以实现自动化   azure如何在Java中为Iterable的for循环内创建计数器并获取计数器变量的值   java JDialog未显示最小化/关闭按钮   java断言true,来自两个方法的变量