用途:指导设计并构建 AWS Step Functions 状态机工作流,适用于多步骤流程编排、Saga 补偿事务、并行任务协调等场景。
选型:Standard 最长运行 1 年、恰好一次执行、有完整执行历史,适合长时或需审计的业务流程;Express 最长 5 分钟、至少一次(异步)执行、仅 CloudWatch Logs 记录,适合高并发短时事件处理,规模大时更便宜。建议业务编排默认 Standard。
主要能力:Task 状态执行工作;可直接集成 200 多个 AWS 服务(如 DynamoDB、SQS、SNS、EventBridge、ECS/Fargate、Glue、SageMaker、Bedrock),避免用 Lambda 包装简单 API 调用。还包含 Choice 分支、Parallel 并发、Map(Inline/Distributed)、Wait 暂停等状态类型。
错误处理:每个 Task 应配置 Retry 与 Catch。重试由具体到通用排列,使用 JitterStrategy: FULL 防惊群,最后用 States.ALL 且 MaxAttempts: 0 捕获意外错误;Catch 中使用 ResultPath 保留原始输入。
常见模式:Saga 补偿事务(补偿按逆序执行且需幂等);人工审批回调使用 .waitForTaskToken,必须设置 TimeoutSeconds;Distributed Map 用 Express 子执行处理 S3 中百万级条目。
用法:可通过 AWS CLI 创建、启动、查询、更新状态机,如 aws stepfunctions create-state-machine --name my-workflow --definition file://definition.json --role-arn ...;也可在 Workflow Studio 可视化设计后导出 ASL JSON 纳入版本控制。
限制:Standard 每个状态负载上限 256 KB,超大载荷应存 S3 传引用;Express 需自行配置 CloudWatch Logs 才有可观测性;ASL 只做编排,复杂计算应放 Lambda;避免单体状态机,可用嵌套状态机拆分。具体价格和配额以官方文档为准。