跳转到主要内容

轻量级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

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 (19.7 kB 查看哈希值)

上传时间

构建分布

caravan-0.2.2-py2-none-any.whl (32.1 kB 查看哈希值)

上传时间 Python 2