【问题标题】:Why an AWS state machine does not display an execution as "timed out", but as "failed"?为什么 AWS 状态机不会将执行显示为“超时”,而是显示为“失败”?
【发布时间】:2019-07-27 22:18:18
【问题描述】:

我们使用单个 AWS Lambda 步骤创建了一个最小状态机。然后将状态机描述符中步骤的超时时间设置为低值。

它正确地因超时而终止,但结果是“失败”而不是“超时”。我想知道为什么?

重现步骤

  1. 创建一个简单的 Lambda 函数,该函数将执行一个长时间运行的过程。为简单起见,创建一个 Python 脚本并让函数休眠几秒钟:

    import time
    
    def lambda_handler(event, context):
        time.sleep(10)   # Delays for 10 seconds.
        return event 
    
  2. 将 Lambda 函数的超时设置为 30 秒。 (它实际上永远不会超时。)

  3. 创建一个简单的状态机,它将以 5 秒的超时时间调用此 Lambda:

    {
        "StartAt": "Execute Lambda",
        "States" : {
           "Execute Lambda" : {
               "Type" : "Task", 
               "Resource": "arn:aws:lambda:eu-west-1:**********:function:helloWorld",
               "TimeoutSeconds" : 5, 
               "Retry": [
                   {
                        "ErrorEquals": ["States.ALL"],
                        "MaxAttempts": 0
                   }
                ],
                "End" : true
            }
        }
    }
    
  4. 开始执行。

结果

根据“执行事件历史”,最后一个事件是“ExecutionFailed”,“错误”是“States.Timeout”。到目前为止,一切顺利。

但是:

  1. 当您查看状态机的执行列表时,该执行的状态为“失败”。 (预期:“超时”。)

  2. 当您查看状态机列表时,此执行会增加“失败”列中的计数器。 (预期:增加“超时”列中的计数器。)

我猜想不知何故,执行结果没有正确“映射”,但找不到原因。或者,它只是基于 Lambda 的状态机步骤中的一个错误?!

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-step-functions


    【解决方案1】:

    有五种状态与状态机执行相关联。

    • 正在运行
    • 成功
    • 失败
    • 中止
    • 超时

    一次执行最多可以运行 1 年。如果状态机执行中的状态之一超时,则执行失败而不是超时。但是,如果执行运行超过 1 年,您会看到“超时”状态。

    查看步骤函数limits

    如果执行运行超过 1 年的限制,它将失败并显示 States.Timeout 错误并发出 ExecutionsTimedout CloudWatch 指标。

    【讨论】:

      【解决方案2】:

      Step Function 中的 Timed Out 状态仅针对 Step Function 的执行时间(直到 1 年),您的 lambda 函数的超时状态是 State 的 Failed 事件。请记住,您可以在您的步进机器中创建一个状态“Type”:“Wait”,这样您就可以节省运行可计费的 lambda 的时间。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-03-09
        • 2011-11-21
        • 1970-01-01
        • 2021-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多