用途
awsflow-stepfunc 是 awsflow VS Code 扩展中提供的 StepFuncTool 语言工具,用于在 VS Code 中管理 AWS Step Functions 的状态机、执行、活动及相关生命周期操作。它把常见的 Step Functions 管理操作封装为命令,供用户通过工具调用方式执行。
主要能力
StepFuncTool 共包含 28 个命令,可分为查询与创建/变更两类。
查询类命令:DescribeActivity(描述活动)、DescribeExecution(描述特定执行)、DescribeMapRun(描述 Map Run)、DescribeStateMachine(描述状态机)、DescribeStateMachineAlias(描述状态机别名)、DescribeStateMachineForExecution(描述与某次执行关联的状态机)、GetExecutionHistory(获取执行的逐步事件历史)、ListActivities(列出活动)、ListExecutions(列出某状态机的执行)、ListMapRuns(列出某次执行的 Map Run)、ListStateMachineAliases(列出状态机别名)、ListStateMachines(列出所有状态机)、ListStateMachineVersions(列出状态机版本)。
创建与变更类命令:StartExecution(启动新执行)、UpdateStateMachine(更新状态机定义、角色或配置)、ValidateStateMachineDefinition(校验 Amazon States Language 定义)、CreateStateMachine(创建新状态机)、CreateActivity(创建活动)、CreateStateMachineAlias(创建状态机别名)、PublishStateMachineVersion(发布状态机版本)、TagResource(为状态机或活动添加标签)、UntagResource(移除资源标签)、DeleteStateMachine(删除状态机)、DeleteActivity(删除活动)、StopExecution(停止正在运行的执行)、UpdateStateMachineAlias(更新状态机别名)、DeleteStateMachineAlias(删除状态机别名)、DeleteStateMachineVersion(删除状态机版本)。
使用方式
工具名为 StepFuncTool,输入遵循以下结构:
{
"command": "<CommandName>",
"params": { ... }
}
常用参数包括:stateMachineArn(状态机 ARN,DescribeStateMachine、StartExecution、UpdateStateMachine 必需,ListExecutions 使用)、executionArn(执行 ARN,DescribeExecution、GetExecutionHistory 必需)、maxResults(最大返回条目数)、nextToken(分页令牌)、reverseOrder(按时间逆序返回事件)、statusFilter(按状态过滤执行,枚举为 RUNNING、SUCCEEDED、FAILED、TIMED_OUT、ABORTED)、name(执行名称)、input(执行的 JSON 字符串输入)、traceHeader(X-Ray 追踪头)、definition(Amazon States Language 格式的状态机定义)、roleArn(状态机的 IAM 角色 ARN)、loggingConfiguration(日志配置对象)、tracingConfiguration(追踪配置对象)、publish(设为 true 时发布新版本)、versionDescription(发布版本的描述)。
使用示例(源自资料):
列出所有状态机:
{ "command": "ListStateMachines", "params": { "maxResults": 20 } }
描述状态机:
{ "command": "DescribeStateMachine", "params": { "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:MyWorkflow" } }
按状态过滤列出执行:
{ "command": "ListExecutions", "params": { "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:MyWorkflow", "statusFilter": "FAILED", "maxResults": 10 } }
启动新执行:
{ "command": "StartExecution", "params": { "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:MyWorkflow", "input": "{\"orderId\": \"12345\", \"amount\": 99.99}" } }
获取执行历史:
{ "command": "GetExecutionHistory", "params": { "executionArn": "arn:aws:states:us-east-1:123456789012:execution:MyWorkflow:exec-id", "maxResults": 100, "reverseOrder": true } }
描述执行:
{ "command": "DescribeExecution", "params": { "executionArn": "arn:aws:states:us-east-1:123456789012:execution:MyWorkflow:exec-id" } }
更新状态机定义:
{ "command": "UpdateStateMachine", "params": { "stateMachineArn": "arn:aws:states:us-east-1:123456789012:stateMachine:MyWorkflow", "definition": "{\"StartAt\": \"Step1\", \"States\": { \"Step1\": { \"Type\": \"Pass\", \"End\": true }}}" } }
校验定义:
{ "command": "ValidateStateMachineDefinition", "params": {} }
创建状态机:
{ "command": "CreateStateMachine", "params": { "name": "MyWorkflow", "definition": "{\"StartAt\":\"Step1\",\"States\":{\"Step1\":{\"Type\":\"Pass\",\"End\":true}}}", "roleArn": "arn:aws:iam::123456789012:role/StepFuncRole" } }
停止执行:
{ "command": "StopExecution", "params": { "executionArn": "arn:aws:states:...:execution:MyWorkflow:exec-id", "cause": "manual stop" } }
适用场景
- 列出或描述状态机,了解其定义与配置。
- 启动新执行或查看已有执行。
- 查看执行的逐步骤事件历史,便于调试。
- 更新或校验状态机定义。
- 列出或描述活动与 Map Run。
- 创建或删除状态机与活动。
- 停止执行、管理标签与别名、发布或删除版本。
相关服务与日志
Step Functions 可编排多个 AWS 服务,资料中列出的关联工具包括:LambdaTool(调用 Lambda 函数)、SQSTool(向 SQS 发送消息)、SNSTool(发布到 SNS 主题)、DynamoDBTool(读写 DynamoDB 表)、GlueTool(启动 Glue 作业)、EMRTool(启动 EMR 步骤)、APIGatewayTool(调用 API Gateway 端点)、CloudWatchLogTool(CloudWatch 中的执行日志)、IAMTool(执行所用 IAM 角色)、CloudFormationTool(通过 CloudFormation 部署)。
Step Functions 的日志组通常遵循命名:/aws/vendedlogs/states/<state-machine-name>-Logs。可用 CloudWatchLogTool 的 DescribeLogGroups 并以 logGroupNamePrefix 为 "/aws/vendedlogs/states/" 查找。
使用提示与限制
- 可用 ListStateMachines → DescribeStateMachine 探索定义与配置。
- 可用 ListExecutions 配合 statusFilter: "FAILED" 找出失败运行,再用 GetExecutionHistory 逐步调试。
- StartExecution 需要 stateMachineArn,并接受 JSON 输入字符串。
- UpdateStateMachine 中的 definition 必须是合法的 Amazon States Language JSON。
- GetExecutionHistory 中使用 reverseOrder: true 可优先看到最近事件。
- 除资料中列出的命令、参数与示例外,工具的具体运行环境要求、权限配置、收费与价格等信息暂未提供。