无服务器异步任务执行

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楼梯的最大高度   java Jackson从1.7.1更新到2.8.6 JsonTypeInfo子类型反序列化   Spring WebApp中的java JPA异常处理   java在SwingWorker(doInBackground)中从WorkerThread调用多个方法?   java Android Studio构建到jar   java是添加多个按钮组的更有效方法   java MySQL JDBC连接池最大大小   java如何防止元素<Integer>变成元素<Object>   Java:处理大型XML文件提取数据而不编写状态自动机?   SpringBoot和React Web应用程序中CAS的java重定向问题   需要java算法方面的帮助吗   java在JDK 16中使用PowerMock   java异常错误本机方法签名   在Java Android中将JSON映射到数组/对象   如何打开一个窗口。java程序中的dat文件   java应用程序引擎+Maven+热插拔   java Moxy的getValueByXPath为除根元素以外的所有元素返回null