运行在amazon lambda上的python应用程序的最小值。

python-lambda的Python项目详细描述


===
蟒蛇-λ
==


…图片::https://img.shields.io/pypi/v/python lambda.svg
:alt:pypi
:目标:https://pypi.python.org/pypi/python lambda/

…图片::https://img.shields.io/pypi/pyversions/python lambda.svg
:alt:python versions
:target:https://pypi.python.org/pypi/python lambda/

python lambda是在aws lambda中开发和部署*无服务器*python代码的工具集。

=====现在,python lambda和'pytube<;https://github.com/nficano/pytube/>;``两者都在持续增长,我呼吁贡献者帮助构建新功能、审查请求、修复错误和保持整体代码质量。如果您感兴趣,请在NFICONO[AT] Gmail网站上给我发电子邮件。DA相对容易,但是捆绑和部署代码的过程并不像它可能那么简单。

*python lambda*库通过为您提供一个工具集来简化烦人的部分,从而消除了开发python lambda服务的猜测工作。


/>=========


>*python 2.7&3.6.7&3.6(撰写本文时,aws lambda只支持python2.7/3.6)。

*pip(~8.1.1.1)
*virtuallenv(~15.0.0.0)
*virtuallenvwwwrapper(~4.7.1)





==========




首先,必须创建iam角色角色,首先,必须创建iam角色。在你的aws上名为"lambda_basic_execution"的帐户附加了"lambda asiceexecution"策略。


在您的计算机上,创建一个新的virtualenv和项目文件夹。

…代码::bash

$mkvirtualenv pylambda
(pylambda)$mkdir pylambda


下一步,通过pypi使用pip下载*python lambda*代码::bash

(pylambda)$pip从"pylambda"目录安装python lambda

,运行以下命令启动项目。

代码::bash

(py lambda)$lambda init

这将创建以下文件:``event.json``、`````````uu init`、``service.py`和``config.yaml`。

让我们从在您选择的文本编辑器中打开``config.yaml``开始。在本教程中,唯一需要的信息是"aws_access_key_id"和"aws_secret_access_key"。您可以通过登录到aws管理控制台来找到它们。

接下来让我们打开"service.py",在这里您将找到以下函数:

。代码::python

def处理程序(事件、上下文):

e=event.get('e')
pi=event.get('pi')
return e+pi



这是处理函数;这是aws lambda将响应事件调用的函数。您会注意到,在示例代码中,"e"和"pi"是"dict"中的值。aws lambda使用"event"参数将事件数据传递给处理程序。

xt让我们打开"event.json"文件:

…代码::json

{
"pi":3.14,
"e":2.718
}

代码::bash

(pylambda)$lambda invoke-v

代码::bash

5.858



"event.json"文件应该可以帮助您在本地开发lambda服务。您可以通过将`--event file=<;filename>;.json``参数传递给``lambda invoke``来指定备用的``event.json``文件。


准备将代码部署到lambda时,只需运行:

。代码::bash

(pylambda)$lambda deploy

deploy脚本将评估您的virtualenv并确定您的项目依赖项。它会将这些内容与处理程序函数一起打包成一个zip文件,然后上载到aws lambda。

现在您可以登录到"aws lambda管理控制台"来验证成功部署的代码。


==


==如果您希望开发一个简单的微服务,您可以轻松地将您的函数连接到http端点。

首先导航到"aws lambda管理控制台"lt;https://console.aws.amazon.com/lambda/>;``并单击您的函数。单击"API端点"选项卡,然后单击"添加API端点"。

最后,您需要更改函数的返回值以符合为api网关终结点定义的标准,该函数现在应该如下所示:

…代码::python

def处理程序(事件、上下文):

e=event.get('e')
pi=event.get('pi')
返回{
"statuscode":200,
"headers":{"content type":"application/json"},
"body":e+pi
}

代码::bash

$curl--header"内容类型:application/json"\
--request post\
--data'{"pi":3.14,"e":2.718}'\
https://<;api endpoint url>;
5.85800000000005

environment variables
==bda函数支持环境变量。为了设置要使用的已部署代码的环境变量,可以在"config.yaml"中配置它们。要在部署时加载环境变量的
值(而不是在配置文件中硬编码),可以使用本地环境值(请参见下面示例代码中的"env3"。

。代码::yaml

环境变量:
env1:foo
env2:baz
env3:${本地环境变量名}

如果您的函数不需要环境变量,只需将此部分保留在配置之外。

您可以使用"upload"命令将包发送到您选择的s3存储桶。
执行此操作之前,您需要在"config.yaml"中设置以下变量:

。代码::yaml

role:basic_s3_upload
bucket_name:"example bucket"
s3_key_prefix:"path/to/file/"


role必须对指定的bucket/key拥有"s3:putobject"权限才能正常上载。一旦设置好,就可以执行"lambda upload"来启动传输。

这可以通过使用为执行"upload"命令而设置的相同变量/aws权限发出"lambda deploy_s3"来完成。


development
===


"python lambda"的开发只在github上进行。补丁、测试和有限元分析的贡献真正的创造和/或要求是非常受欢迎和高度鼓励的。如果此工具无法按预期运行,请打开一个问题。



允许命令:

…代码::bash

git checkout master

ogress更改,将版本增加到修补程序版本,以防止不准确的属性。
bumpversion--无标记修补程序

git push origin master--标记

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

推荐PyPI第三方库


热门话题
java如何使用JPA从1自动生成id?   java JSONException:CourseVide没有值   在Java中使用身份和访问管理   java观察者设计如何访问方法。调用范围?   试图从Java源代码调用JavaScript函数   java How to Fix无法解析Android中的方法“setContentView”   java如何从非结构化日志文件中提取json字符串?   将java布尔结果转换为字符串值   java无法调试servlet Eclipse+Glassfish   java是检查布尔值数组是否包含true的最快方法   java JFrame不会显示在ubuntu上   面向Web应用的javascript图像编辑   使用Hadoop自定义数据类型biginsghts时出现java EOF异常   选择尽可能多的非重叠段时超出了java时间限制   从Firebase获取数据列表并在不同活动/片段中共享的java最佳实践   使用SimpleCursorAdapter时出现java空指针异常   java以升序将元素插入到多链接列表中   支持TDD的java Eclipse插件   客户端无法从Java代码向服务器发送命令