You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Step Function故障跳转时如何将dbMigration输出作为dbFallback输入

实现方案

要将dbMigration的输出传递给错误触发的dbFallback,你需要通过AWS Step Functions的ResultPath配置保留上游状态的输出数据,避免被后续状态的输出或错误信息覆盖,具体操作如下:

  • 给dbMigration任务添加ResultPath配置,将它的输出结果保存到状态机上下文的指定路径下,比如$.dbMigrationOutput,避免后续状态执行时覆盖该数据。
  • 给Parallel状态添加ResultPath配置,将并行分支的执行结果保存到独立路径下,比如$.parallelOutput,保留上下文里的dbMigrationOutput数据。
  • 给Catch规则添加ResultPath配置,将错误信息保存到独立路径下,比如$.errorInfo,避免错误信息直接覆盖整个上下文,导致dbMigrationOutput丢失。
  • 可选配置:如果需要指定dbFallback的入参结构,可以给dbFallback任务添加Parameters配置,自定义传入dbMigration的输出和错误信息。

修改后的完整配置如下:

stepFunctions:
  stateMachines:
    divoMigrationMachine:
      name: divoMigrationMachine
      role: arn:aws:iam::#{AWS::AccountId}:role/migration-stepfunction-role
      definition:
        StartAt: dbMigration
        States:
          dbMigration:
            Type: Task
            Resource: arn:aws:lambda:${self:provider.region}:#{AWS::AccountId}:function:migration-pilot-backend-${self:provider.stage}-dbMigration
            ResultPath: $.dbMigrationOutput # 新增:保存dbMigration输出
            Next: Parallel
          Parallel:
            Type: Parallel
            Next: Final State
            ResultPath: $.parallelOutput # 新增:保存并行任务输出,不覆盖原有上下文
            Branches:
              - StartAt: coverartMigration
                States:
                  coverartMigration:
                    Type: Task
                    Resource: arn:aws:lambda:${self:provider.region}:#{AWS::AccountId}:function:migration-pilot-backend-${self:provider.stage}-coverartMigration
                    End: true
              - StartAt: trackMigration
                States:
                  trackMigration:
                    Type: Task
                    Resource: arn:aws:lambda:${self:provider.region}:#{AWS::AccountId}:function:migration-pilot-backend-${self:provider.stage}-trackMigration
                    End: true
            Catch:
              - ErrorEquals: ["States.ALL"]
                ResultPath: $.errorInfo # 新增:保存错误信息到独立路径
                Next: dbFallback
          dbFallback:
            Type: Task
            Resource: arn:aws:lambda:${self:provider.region}:#{AWS::AccountId}:function:migration-pilot-backend-${self:provider.stage}-dbFallback
            # 可选:自定义入参,仅传递需要的字段
            # Parameters:
            #   dbMigrationResult: $.dbMigrationOutput
            #   errorDetail: $.errorInfo
            End: true
          Final State:
            Type: Pass
            End: True

配置完成后,dbFallback收到的入参中会完整包含dbMigrationOutput字段,你可以直接在对应的Lambda函数中读取使用。

内容的提问来源于stack exchange,提问作者roshan poojary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:18:02