轻量级Python框架,用于AWS SWF
项目描述
轻量级Python框架,用于AWS SWF
关于此项目
Caravan正在Ludia用于如营销活动系统和按需分布式处理系统等项目(感谢数百个Lambda函数)。
欢迎反馈、想法和贡献。(只需打开Github问题)。
文档:待办
本项目重点
存在类似的项目(如成熟的Simpleflow)。以下是Caravan与现有项目的不同之处
支持AWS Lambda任务
Boto3
简单易用
自带工作流框架(标准实现作为 contribs)
Decider代码与Activity代码之间无耦合
Paster兼容的配置文件
功能
Decider工作器
Activity任务工作器 待办
启动/信号/终止任意工作流执行的命令
列出打开的工作流执行的命令
注册域名/列出域名的命令
配置
Caravan使用Boto3连接到AWS。有关完整文档,请参阅Boto 3配置指南。
环境变量
- AWS_ACCESS_KEY_ID
您的AWS账户的访问密钥。
- AWS_SECRET_ACCESS_KEY
您的AWS账户的秘密密钥。
- AWS_DEFAULT_REGION
默认区域,例如:us-east-1。
- AWS_PROFILE
默认凭证和配置配置文件,如果有。
配置文件
凭证文件位于~/.aws/credentials
[default] # The access key for your AWS account aws_access_key_id=<YOUR ACCESS KEY ID> # The secret key for your AWS account aws_secret_access_key=<YOUR SECRET KEY>
设置文件位于~/.aws/config
[default] # The default region when making requests region=<REGION NAME>
它还支持配置文件
[profile dev-profile] # The default region when using the dev-profile account region=<REGION NAME>
演示
设置一个SWF域以运行此示例
$ caravan-domain-register -n CaravanDemo --retention-days 1
编写一个工作流类型(请参阅完整的演示)
from caravan import Workflow
class Demo(Workflow):
"""Noop workflow using the bare caravan API."""
name = 'Demo'
version = '0.1'
default_execution_start_to_close_timeout = '600'
default_task_start_to_close_timeout = '10'
def run(self):
self.task.print_events()
self.task.add_decision('CompleteWorkflowExecution')
使用演示工作流运行决策者
$ caravan-decider -d CaravanDemo -m caravan.examples.demo -t default --verbose
启动演示工作流的执行
$ caravan-start -d CaravanDemo -n Demo -v 0.1 -i 1 (The Demo workflow will wait for 5 minutes)
列出执行
$ caravan-list -d CaravanDemo $ caravan-list -d CaravanDemo --oldest 2015-01-01
向执行发送信号
$ caravan-signal -d CaravanDemo -i 1 -s PRINT --input 'Hello World!' $ caravan-signal -d CaravanDemo -i 1 -s PRINT --input 'Lorem ipsum' $ caravan-signal -d CaravanDemo -i 1 -s STOP
终止执行
$ caravan-terminate -d CaravanDemo -i 1
类似的项目
Python
Simpleflow: https://github.com/botify-labs/simpleflow
Ruby
AWS Flow: https://github.com/aws/aws-flow-ruby
参考文献
开发
可能使用virtualenvwrapper来管理您的虚拟环境。
$ mkvirtualenv caravan
或者
$ virtualenv caravan
克隆并安装开发依赖项
(caravan)$ git clone git@github.com:pior/caravan.git (caravan)$ cd caravan (caravan)$ pip install -e .[dev]
运行测试
(caravan)$ nosetests
发布
发布流程使用zest.releaser
$ fullrelease
许可证
MIT许可。有关更多详细信息,请参阅附带LICENSE文件。
项目详情
下载文件
下载适合您平台的项目。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
caravan-0.2.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a2fe28892ba5657328527c2952f64deb639147bf117e756077f99c7d69a9a12b |
|
MD5 | 23999c0fb1b91a59b3745e499fc66a6e |
|
BLAKE2b-256 | 6956cc47a1089782f2241379710f39f7ba88577fc701a623a3cae82f77e8d792 |