使用aws stepfunctions的python库和dsl
heaviside的Python项目详细描述
重型
heaviside是一种领域特定语言(dsl)和python编译器/支持 用于处理AWS StepFunctions的库。
为什么
stepfunctions dsl的原因是state machine language,而 灵活,难以编写和维护。dsl为 编写阶跃函数状态机及常用流量控制服务器 声明。
DSL
StepFunctionDSL文档描述了heaviside dsl。
开始
在本文档中,.hsd
将用于表示用
赫维赛德DSL。扩展名.sfn
将用于表示stepFunction
在aws state machine language中写入的文件。
安装
pip install heaviside
cli脚本
heaviside包安装名为heaviside
的脚本,该脚本提供一个cli
去图书馆。不带参数或使用--help
运行命令
-h
标志将提供详细帮助。
美国焊接学会证书
所有子命令(除了compile
)都连接到aws以操作stepfunction。
有多种方法可以定义aws凭据,按以下顺序列出
优先。
- 显式地将值作为命令行参数或环境变量传递
- 将文件路径传递给带有参数的json文件
- 让Boto3尝试解析密钥/访问密钥
- 查看当前AWS区域的EC2元数据
- 查看AWS帐户ID的当前IAM用户
compile
子命令不连接到aws,但使用区域和
解析任务ARN时的帐户ID值。如果heaviside dsl文件已满
任务arns或编译后的文件不会上载到aws这些值可以
空白。
注意:由于compile
没有连接到aws,因此
以上列表对于传递区域和帐户ID值有效。
编译
要将heaviside文件编译成aws stepfunction文件,请使用compile
副司令部。
$ heaviside compile state_machine.hsd -o state_machine.sfn
创建StepFunction
heaviside
脚本可以编译结果文件并将其上载到aws。
$ heaviside create state_machine.hsd AwsIamStepFunctionRole
参数:
AwsIamStepFunctionRole
:stepfunction将使用的aws iam角色 执行时。最常见的情况是 控制哪些lambda和活动 StepFunction具有执行权限。
删除StepFunction
^ {
$ heaviside delete state_machine
执行stepFunction
可以使用start
子命令开始执行stepfunction。
$ heaviside start --json "{}" state_machine
note:默认情况下,start
子命令将等到
执行已完成,并将打印StepFunction的输出。
python库
heaviside包安装python库heaviside
。有三个
库的组件。
heaviside.compile
:用于将heaviside dsl文件编译为 aws步进函数。heaviside.StateMachine
:用于创建和执行步骤函数的类。heaviside.activities
:包含几个helper类的子模块 运行StepFunction活动的框架。 有关详细信息,请参见Activities document。
相容性
目前,heaviside只在python 2.7和3.5中进行过测试。
相关项目
- statelint:一个验证aws stepfunction定义文件的ruby项目。 包括确保所有状态都是可访问的检查。 有助于开发新的StepFunction以确保 是正确的。它将抓住结构问题 不检查。
法律
在满足以下条件的情况下,允许使用或重新分发源和/或二进制形式的boss系统,无论是否进行修改:
- 重新分配源代码或二进制格式必须遵守任何适用软件的条款和条件许可证。
- 最终用户文件或通知,无论是作为再分配的一部分,还是作为法律或科学披露(如出版物)或广告的一部分分发,都必须包括以下确认:BOSS软件系统是由约翰霍普金斯大学应用物理实验室(JHU/APL)设计和开发的。
- 未经事先书面许可,不得使用“BOSS”、“JHU/APL”、“约翰霍普金斯大学”、“应用物理实验室”、“Microns”或“IARPA”等名称为本软件的产品背书或促销。如需书面许可,请联系BossAdmin@jhuapl.edu。
- 这个源代码和库的发布是希望它会有用,但它的提供没有任何形式的保证。