首页 > 解决方案 > 访问 lambda (Python) 代码中的 AWS 阶跃函数错误

问题描述

我使用此链接在 AWS step 函数中的状态的“catch”块中包含先前的状态和错误详细信息: https ://docs.aws.amazon.com/step-functions/latest/dg/input-output- resultpath.html#input-output-resultpath-catch

而且我可以同时看到它们,但是如何访问下一步指向的 lambda 函数中的错误详细信息?

在此处输入图像描述

我可以使用 event['Input'] 获取上一步输入,但错误不可用。任何帮助深表感谢。

标签: amazon-web-servicesaws-lambdaaws-step-functionscatch-block

解决方案


由于您不能共享您的状态机,我假设您只是想将错误消息传递给下一步(如 lambda 等)。

        {
    "Comment": "A Catch example of the Amazon States Language using an AWS Lambda Function",
    "StartAt": "HelloWorld",
    "States": {
        "HelloWorld": {
        "Type": "Task",
        "Resource": "arn:aws:lambda:eu-central-1:123456789:function:mytestfunction",
        "Catch": [
            {
            "ErrorEquals": ["States.TaskFailed"],
            "Next": "ReservedTypeFallback"
            }
        ],
        "End": true
        },
        "ReservedTypeFallback": {
        "Type": "Task",
        "Resource": "arn:aws:lambda:eu-central-1:123456789:function:catcherror",
        "End": true
        }
    }
    }

上面的状态机是这样的

在此处输入图像描述

mytestfunction lambda 产生的错误被传递到下一步ReservedTypeFallback

下面是catcherror lambda的代码

    def lambda_handler(event, context):
        print(event)
        error_message = event.get('Cause')
        print(f'just printing the failure cause of earlier lambda {error_message}')

当我的状态机执行时产生以下消息: 在此处输入图像描述


推荐阅读