轻松创建、运行和管理aws step功能

sfini的Python项目详细描述


斯菲尼

Build StatuscodecovDocumentation StatusContributor Covenant

轻松创建、运行和管理AWS步骤功能发音为“sfin ee”。

这个包旨在提供一个用户友好的界面来定义和 运行步骤功能您可以在sfini中执行的与AWS步骤交互的操作 功能:

  • 实施和注册活动
  • 定义和注册状态机
  • 开始、跟踪和停止执行
  • 为活动安排工人
  • 获取注册活动和状态机的信息
  • 注销状态机和活动

注意:这不是一个将python代码转换为step函数状态的工具 机器。为此,请参见pyawssfn

开始

先决条件

  • AWS(Amazon Web服务)帐户,具有 访问步骤功能
  • awsIAM(身份和访问管理) 凭证

安装

pip install sfini

用法

文件

检查documentation或使用 内置帮助:

pydoc sfini
importsfinihelp(sfini)

aws阶跃函数

AWS Step Functions(sfn)是 工作流管理服务,提供在 直截了当的时尚。进一步的文档可以在 AWS documentation

step函数的使用包括两种类型:状态机和活动。 状态机是定义 应用程序,由多种类型的“状态”或 工作流程。活动处理对输出的输入,并用于处理 状态机中的任务“状态”(多个任务状态可以具有相同的 分配给它的活动

一旦定义并注册了状态机(以及使用的 在不同的输入上运行状态机的执行 运行工作流sfini允许您启动、停止并获取 这些处决。

状态机支持条件分支(因此也支持循环),重试 (有条件和无条件)、异常捕获、外部aws服务 支持运行任务、并行执行和输入输出处理。 外部服务包括aws lambda,因此您不必部署自己的 活动跑步者

一旦定义并注册了状态机和活动,就可以查看和 在the SFN web console中更新他们的详细信息

角色学习

每个状态机都需要一个角色arn(amazon资源名)。这是AWS IAM 允许状态机处理状态执行的角色arn。见AWS 步骤功能文档了解更多信息。

示例

找到了更多的例子in the documentation

importsfini# Define activitiesactivities=sfini.ActivityRegistration(prefix="test")@activities.activity("addActivity")defadd_activity(data):returndata["a"]+data["b"]# Define state-machineadd=sfini.Task("add",add_activity)sm=sfini.construct_state_machine("testAdding",add)# Register state-machine and activitiesactivities.register()sm.register()# Start activity workerworker=sfini.Worker(add_activity)worker.start()# Start executionexecution=sm.start_execution(execution_input={"a":3,"b":42})print(execution.name)# testAdding_2019-05-13T19-07_0354d790# Wait for execution and print outputexecution.wait()print(execution.output)# 45print(execution.format_history())# ExecutionStarted [1] @ 2019-06-23 20:03:52.817000+10:00# TaskStateEntered [2] @ 2019-06-23 20:03:52.840000+10:00:#   name: add# ActivityScheduled [3] @ 2019-06-23 20:03:52.840000+10:00:#   resource: arn:aws:states:us-west-2:ACCID:activity:testaddActivity# ActivityStarted [4] @ 2019-06-23 20:03:53.954000+10:00:#   worker: hostname-3a4fb480# ActivitySucceeded [5] @ 2019-06-23 20:03:55.028000+10:00# TaskStateExited [6] @ 2019-06-23 20:03:55.028000+10:00:#   name: add# ExecutionSucceeded [7] @ 2019-06-23 20:03:55.028000+10:00# Output: 45# Stop activity workersworker.end()worker.join()# Deregister state-machine and activitiesactivities.deregister()sm.deregister()

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

推荐PyPI第三方库


热门话题
java JPA标准从数组中选择枚举   javajavafx:操作系统dockbar中程序的标题(例如ubuntu19.10)   java int数组和双数组差分   java如何用字母表填充字符数组?   java Lucene:如何考虑与原始术语的相似性?   eclipse如何获取java文件的路径,包括/src/   Java接口—通过多个层传递变量的替代方案   java动态字段和/或人工方法   带有表单登录的JavaSpringSecurityOAuth2   twitter4j使用Java从URL中提取tweet?   java JSP解析错误   java气泡排序交换每个数字,而不考虑值   java如何在变量中存储时间?   Java程序在Eclipse中运行良好,但不是作为一个整体。jar文件(配置路径是否错误??)   如何在LinuxShell中持续运行特定数量的java进程?   java c#始终允许向上转换   java正则表达式匹配阿拉伯日期或普通日期   类Java HashMap对象,整数