无服务器异步任务执行

chili-pepper的Python项目详细描述


异步无服务器任务执行

辣椒是一个简单的框架,使其易于执行 不中断应用程序的主要流程的任务。 它处理无服务器部署和任务执行。 它允许您与 您的主应用程序 零停机、零维护和无限扩展

https://badge.fury.io/py/chili-pepper.svgDocumentation StatusPyPI - LicensePyPI - Python Version

Pipeline StatusCoverage reportLibraries.io dependency status for latest release

Become a Supporter of Chili-Pepper

命令

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。 如果你用辣椒,我很想听听你的意见! 如果我得到了你的支持,请考虑支持我。

Become a Supporter of Chili-Pepper

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

推荐PyPI第三方库


热门话题
java启动fortran exe   java简单数学英语计算器   如何编译多个*。java文件   java如何使用Chrome浏览器处理“StaleElementReferenceException”   java为什么在RoomDatabase中使用createFromAsset时数据库为空。列表的大小为0,但预填充的数据库有8项   java不完全清楚这段代码的作用是什么?(包括Set、HashMap和.keySet())   单击选项项时未显示java Android Snackbar   int查找适当的Java数据类型   java如何从带有多个子模块的maven项目创建单个库jar?   java为什么上课。getClass()可以与类不同。cast()返回类型?   两个移动设备之间的java安全连接:SSL密钥非“专用”   多线程Java事件队列。为什么一切都应该在invokelater方法中?   java数据库设置如何执行select语句   java何时在Spring boot应用程序中清除SecurityContext?即使在api调用完成后,它也会被保留   执行操作后,java在InputStream中丢失内容   java Heroku Discord Bot“没有运行web进程”   java不能通过使用Scanner获取数据从一个类中创建两个对象   java最近迁移到安卓x,我发现alertdialog存在布局问题   java检查我的应用程序的兼容性