2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

AWS Step Functions:使用可视化工作流协调分布式应用程序和微服务

  • 2017-01-09
  • 本文字数:1499 字

    阅读完需:约 5 分钟

Amazon Web Services 推出了 AWS Step Functions ,该服务让用户可以使用可视化工作流协调分布式应用程序和微服务。AWS Step Functions 控制台支持定义状态机的 JSON 规范,从而在应用程序内执行“步骤(steps)”,例如,调用外部的 AWS Lambda 函数或者运行在 AWS EC2 容器服务(ECS)上的容器化应用程序。

通过 AWS Step Function 服务创建的每一个状态机都定义了一组状态以及状态之间的转换。状态可以顺序或并行激活,该服务可以确保所有并行的状态都运行完毕再进行下一步操作。状态会执行任务、作出决定,并通过状态机控制这个过程。每个状态机的多个副本可以同时独立地运行;每个副本称为一个“执行(execution)”。按照 AWS 博客的说法,AWS Step Functions 服务允许并发运行数以千计的执行。

AWS Step Function 状态机承担的所有工作都是由“任务(tasks)”负责处理。一项任务可以是:

  • AWS Lambda 函数:完全基于云的任务,在 Lambda 服务上运行。Lambda 函数可以使用 JavaScript(可以使用 AWS 管理控制台编写,也可以上传到 AWS Lambda 服务)、Java 或 Python(必须上传到 AWS 服务)编写。
  • 一个活动:这个概念是指由“worker”应用程序或者托管在类似 AWS EC2 或 AWS ECS 这样的平台上的微服务执行的一项任务。
    • Worker 可以使用任何能够调用 AWS Step Functions API 的语言实现。
    • Worker 必须调用 API “GetActivityTask”和“SendTask*”轮询 AWS Step Functions。据 AWS 博客介绍,最基本的,一项活动甚至可以是一项“人工任务”,等待某个人来执行一些动作,然后继续。
    • 如果一项活动有心跳超时时间,则实现这项活动的 worker 必须使用“SendTaskHeartbeat”动作发送心跳更新。
    • 活动没有版本控制,它们应该总是向后兼容。如果必须对一项活动的定义做向后不兼容的修改,那么就应该借助 Step Functions 使用一个唯一的名称新建一项活动。

错误处理行为和重试逻辑可以作为状态机的一部分在 JSON 规范中指定。这让你可以构建“健壮的多步骤应用程序”,即使应用程序的一部分瞬时出现了问题,导致了短暂的故障,它仍然可以成功运行。

在创建状态机规范时,可以使用 AWS Labs 新推出的 Ruby gem “ statelint ”验证手动或机器生成的 JSON,从而发现常见的错误,包括状态不可达和遗漏终端状态。

任何状态机的设计都可以在 AWS Step Functions 控制台上以可视化的方式进行,而在执行过程中,可以启用一个彩色的图表来审查状态机内的当前进展(步骤成功 / 失败):

虽然 AWS Step Functions 最近才刚刚发布,但 Leading Edge Forum 研究人员 Simon Wardley 指出,该服务和类似 AWS Lambda 这样的“无服务器”功能可以支持未来“编码化(codification)”业务运作方式,这是为了提高灵活性而开始创建业务流程执行语言(BPEL)的早期尝试。

当你考虑 AWS Lambda、AWS Step Functions 等等服务时,你需要以一个自动化基本原则的角度来考虑,也就是说,不只是说或者编码到地图和相关系统中,而是要随处嵌入。大规模地,以我希望我们能够达到的竞争速度,那么,这是必须的。

AWS 博客介绍,AWS Step Functions 当前的可用区域包括美国东部(北弗吉尼亚)、美国东部(俄亥俄州)、美国西部(俄勒冈州)、欧洲(爱尔兰)及亚太(东京)。作为 AWS 免费试用方案的一部分,用户每月最多可以免费运行 4000 次状态转换。除了免费使用方案外,每 1000 次状态转换的费用为 0.025 美元。

要了解更多信息,请查看 AWS Step Functions 的产品页面、 AWS 博客以及在 YouTube 上观看 AWS 最近举办的在线研讨会“ AWS Step Functions 发布”。

查看英文原文: AWS Step Functions: Coordinating Distributed Applications and Microservices Using Visual Workflows

2017-01-09 18:009102
用户头像

发布了 1008 篇内容, 共 440.7 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

MyEMS开源能源管理系统核心代码解读019

开源能源管理系统

开源 开源能源管理系统 代码解读 能源管理系统

我的代码背叛了我?为什么 a=1, b=2,最后x和y都等于0?

poemyang

并发编程 volatile 可见性 Java并发编程

微店商品详情API指南

tbapi

微店API 微店商品数据采集 微店商品详情API

书本大纲:从芯片、分布式到云计算AI时代

poemyang

云计算 分布式 高并发

腾讯云TencentOS提交Swap Table补丁系列 Linux内核内存交换性能提升20%~30%

极客天地

NocoBase 本周更新汇总:优化及缺陷修复

NocoBase

开源 低代码 零代码 无代码 版本更新

Cisco vManage漏洞分析:从SSRF到Root权限的完整攻击链

qife122

网络安全 SD-WAN

MyEMS开源能源管理系统核心代码解读020

开源能源管理系统

开源 开源能源管理系统 代码解读 能源管理系统

传统公关已式微?企业出海品牌维护要靠实时舆情监控

沃观Wovision

出海企业 海外舆情 沃观Wovision 舆情监测系统

深度剖析 RocketMQ 5.0 之事件驱动:云时代的事件驱动有啥不同?

Apache RocketMQ

RocketMQ 云原生 消息队列 事件总线Eventbridge

Apache RocketMQ ACL 2.0 全新升级

Apache RocketMQ

RocketMQ 云原生 消息队列

CTE查询数据量过大导致MySQL 8.0发生CORE问题解析

GreatSQL

Apache RocketMQ,构建云原生统一消息引擎

Apache RocketMQ

RocketMQ 云原生 消息队列 云栖大会

基于模型蒸馏的大模型文案生成最佳实践

阿里云大数据AI技术

人工智能 大数据 大模型 大语言模型 大模型蒸馏

当AI学会品酒与问诊:DeepSeek的双智能体系统的奇幻物语

华为云开发者联盟

云主机 AI 智能体 DeepSeek v3 华为开发者空间

AI英语口语练习APP的技术方案

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI英语

金融企业项目实践 - 开发者空间OpenGauss数据库助力项目完成

华为云开发者联盟

云主机 GaussDB(for openGauss) 数据库、 华为开发者空间

MyEMS开源能源管理系统核心代码解读018

开源能源管理系统

开源 开源能源管理系统 代码解读 能源管理系统

KWDB一键部署全攻略

KaiwuDB

第十五章 SEO的简单免费工具

溪抱鱼

SEO SEO 优化

5000字谈普通人如何用AI利益最大化

阿星AI工作室

AI 产品经理 小白 工具集 AIGC

开发者空间安装ODBC驱动,编写应用程序操作GaussDB数据库

华为云开发者联盟

数据库 华为云 Gauss DB ODBC 华为开发者空间

精彩瞬间:阿里云 KubeCon China 2025 之行回顾!

阿里巴巴云原生

阿里云 云原生 KubeCON

收藏!国内120+AI Agent开发/构建平台大盘点(上):互联网、云计算、AI、传统软件厂商推出的智能体平台

王吉伟频道

智能体 AI Agent Agentic AI 智能体平台 Agent开发平台

Solana 开发者拟将区块计算单位上限从 6000 万提升至 1 亿,带来繁荣的链上生态

PowerVerse

电脑下载速度很慢怎么解决 提高电脑下载速度的软件推荐

阿拉灯神丁

视频下载器 idm下载 下载工具

深度剖析 RocketMQ 5.0 之 IoT 消息:物联网需要什么样的消息技术?

Apache RocketMQ

RocketMQ 云原生 物联网 IoT 消息队列

预制菜加工预制菜加工厂智能化生产管理MES系统全面解决方案厂智能化生产管理MES系统全面解决方案

万界星空科技

mes 预制菜加工 预制菜工厂 预制菜生产管理 食品加工MES

什么是关系型数据库?全面解析 RDBMS 核心原理与应用实践

镜舟科技

关系型数据库 RDBMS StarRocks 湖仓一体 实时分析

TEM on 腾讯云安装 + 试用指南

TiDB 社区干货传送门

AWS Step Functions:使用可视化工作流协调分布式应用程序和微服务_语言 & 开发_Daniel Bryant_InfoQ精选文章