使用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系统,无论是否进行修改:

  1. 重新分配源代码或二进制格式必须遵守任何适用软件的条款和条件许可证。
  2. 最终用户文件或通知,无论是作为再分配的一部分,还是作为法律或科学披露(如出版物)或广告的一部分分发,都必须包括以下确认:BOSS软件系统是由约翰霍普金斯大学应用物理实验室(JHU/APL)设计和开发的。
  3. 未经事先书面许可,不得使用“BOSS”、“JHU/APL”、“约翰霍普金斯大学”、“应用物理实验室”、“Microns”或“IARPA”等名称为本软件的产品背书或促销。如需书面许可,请联系BossAdmin@jhuapl.edu
  4. 这个源代码和库的发布是希望它会有用,但它的提供没有任何形式的保证。

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

推荐PyPI第三方库


热门话题
插件Java Bukkit/spiget块指定的命令   通过索引Java在数组中查找异或   java程序无法识别字符在数组中的位置   unix无法启动测试系统“slim”:java。木卫一。IOException:无法运行程序“java”:错误=2,没有这样的文件或目录   java使用txt文件值创建对象数组   JAVAutil。扫描器如何在用户在JAVA程序上创建后为每个学生提供一个唯一的ID   java从选定的单元格列表项获取信息   小程序Java JFileChooser网络目录用户/密码提示   java如何格式化字符串以显示两位小数   keylistener使用java使用箭头键移动图形   java无法从HttpClient调用接收数据   java API中的条件字符串解析器?   正则表达式如何在java中将字符串拆分为单词来保留标点符号?   java使用多个jython PythonInterpreter对象和不同的PythonPath   java如何克服方法调用线程。sleep()在findbugs中带有锁定警告?   java Spring工具套件和Spring配置器目录结构   使用setterjava实现jTextField的swing验证输入