无服务器异步任务执行
chili-pepper的Python项目详细描述
异步无服务器任务执行
辣椒是一个简单的框架,使其易于执行 不中断应用程序的主要流程的任务。 它处理无服务器部署和任务执行。 它允许您与 您的主应用程序 零停机、零维护和无限扩展。
命令
usage: chili [-h][--app APP]{deploy} ... Serverless asynchronous tasks positional arguments: {deploy} Chili-Pepper commands deploy Deploy functions to serverless provider optional arguments: -h, --help show this help message and exit --app APP, -A APP The Chili-Pepper application location
开始
安装辣椒
pip install chili-pepper
无服务器提供商
接下来,需要配置无服务器提供程序凭据。
亚马逊网络服务(AWS)
您可以通过多种方式提供aws凭据,包括环境变量、aws凭据文件或服务器角色。有关详细信息,请参见the boto3 documentation about credential configuration。
需要允许这些凭据创建、执行和删除 aws lambda函数和iam角色。
您还需要一个s3 bucket(启用版本控制)。
目前不支持Microsoft azure云, 但有计划在未来支持它。
谷歌云
谷歌云目前不受支持, 但有计划在未来支持它。
创建辣椒应用程序
Chili Pepper应用程序将用于识别和部署您的功能 到无服务器云提供商。
app=ChiliPepper(app_name="demo")
当然,app变量可以有任何名称- 在这些例子中,我们将其称为app。
AWS配置
您需要将这些必需的aws特定配置传递给应用程序。 有关aws配置选项的完整列表,请参见Aws Configuration。
桶
app.conf["aws"]["bucket_name"]="my-chili-pepper-bucket"
这个bucket将用于存储aws lambda部署包。 您应该在bucket上启用版本控制。
运行时
app.conf["aws"]["runtime"]="python3.7"
aws lambda支持几个python运行时。完整列表请参见the lambda runtime documentation。必须将所选运行时的“标识符”传递给Chili Pepper应用程序配置。
创建任务
您可以使用Chili Pepper应用程序来确定应该运行的任务。
@app.task()defmy_task(event,context):returnf"Hello {event['name']}!"
部署
在异步调用任务之前, 您必须将其部署到云提供商。
chili deploy --app my_module.tasks.app
AWS部署
调用deploy将创建包含代码的zipfile 以及任何python依赖项。 辣椒将使用上传到你的S3桶的zipfile, 并使用cloudformation创建aws lambda函数 对于您通过app.task()decorator标识的每个任务。
调用任务
既然您已经将任务部署到云上, 您可以异步调用它们。
task_result=my_task.delay({"name":"Jalapeno"})print(task_result.get())
这将打印Hello Jalapeno!, 在无服务器函数中执行“我的任务”之后。
支架
辣椒是由一个人组成的团队,由 these awesome backers, supporters and sponsors。 如果你用辣椒,我很想听听你的意见! 如果我得到了你的支持,请考虑支持我。