运行在amazon lambda上的python应用程序的最小值。
dmn-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/>;``两者都在继续增长势头,我呼吁贡献者帮助构建新功能,审查拉取请求,修复错误,并保持总体代码质量。如果你感兴趣,请发邮件到nficano[at]gmail.com.
description
==
aws lambda是一个允许你编写python、java和node.js的服务,c或执行响应事件(如http请求或上传到s3的文件)的代码。
开发python lambda服务,为您提供一个工具集来简化烦人的部分。
aws lambda只支持python 2.7/3.6)。
*pip(~8.1.1)
*virtualenv(~15.0.0)
*virtualenvwrapper(~4.7.1)
Getting Started
=必须在AWS帐户上创建名为"lambda_basic_execution"的IAM角色,并附加"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"参数将事件数据传递给处理程序。
内容将在http响应负载中。
接下来,让我们打开"event.json"文件:
。代码::json
{
"pi":3.14,
"e":2.718
}
代码::bash
(pylambda)$lambda invoke-v
代码::bash
5.858
action.
"event.json"文件应该可以帮助您在本地开发lambda服务。您可以通过将`--event file=<;filename>;.json``参数传递给``lambda invoke``来指定备用的``event.json``文件。
准备将代码部署到lambda时,只需运行:
。代码::bash
(pylambda)$lambda deploy
deploy脚本将评估您的virtualenv并确定您的项目依赖项。它会将这些文件与处理程序函数一起打包成一个zip文件,然后上载到aws lambda。
您现在可以登录到"aws lambda管理控制台"lt;https://console.aws.amazon.com/lambda/>;`验证代码部署是否成功。
<;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.858000000000005
环境变量
===
lambda函数支持环境变量。为了设置要使用的已部署代码的环境变量,可以在"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
进行中的更改,将版本增加到修补程序版本以防止不准确的属性。
bumpversion--无标记修补程序
蟒蛇-λ
==
…图片::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/>;``两者都在继续增长势头,我呼吁贡献者帮助构建新功能,审查拉取请求,修复错误,并保持总体代码质量。如果你感兴趣,请发邮件到nficano[at]gmail.com.
description
==
aws lambda是一个允许你编写python、java和node.js的服务,c或执行响应事件(如http请求或上传到s3的文件)的代码。
开发python lambda服务,为您提供一个工具集来简化烦人的部分。
aws lambda只支持python 2.7/3.6)。
*pip(~8.1.1)
*virtualenv(~15.0.0)
*virtualenvwrapper(~4.7.1)
Getting Started
=必须在AWS帐户上创建名为"lambda_basic_execution"的IAM角色,并附加"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"参数将事件数据传递给处理程序。
内容将在http响应负载中。
接下来,让我们打开"event.json"文件:
。代码::json
{
"pi":3.14,
"e":2.718
}
代码::bash
(pylambda)$lambda invoke-v
代码::bash
5.858
action.
"event.json"文件应该可以帮助您在本地开发lambda服务。您可以通过将`--event file=<;filename>;.json``参数传递给``lambda invoke``来指定备用的``event.json``文件。
准备将代码部署到lambda时,只需运行:
。代码::bash
(pylambda)$lambda deploy
deploy脚本将评估您的virtualenv并确定您的项目依赖项。它会将这些文件与处理程序函数一起打包成一个zip文件,然后上载到aws lambda。
您现在可以登录到"aws lambda管理控制台"lt;https://console.aws.amazon.com/lambda/>;`验证代码部署是否成功。
<;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.858000000000005
环境变量
===
lambda函数支持环境变量。为了设置要使用的已部署代码的环境变量,可以在"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
进行中的更改,将版本增加到修补程序版本以防止不准确的属性。
bumpversion--无标记修补程序