通常情况下,这是因为您未正确设置您的 State Machine,以便在调用 lambda 函数时,提供正确的参数。确保您的 State Machine 为 Lambda 函数提供正确的数据输入,即使是在嵌套参数中。另外,检查 Lambda 函数本身是否正确地处理输入值。
以下是一个针对该问题的示例代码:
{
"StartAt": "Sum",
"States": {
"Sum": {
"Type": "Task",
"Resource": "arn:aws:lambda:REGION:ACCOUNT_ID:function:FUNCTION_NAME",
"Parameters": {
"input.$": "$"
},
"ResultPath": "$.sumResult",
"End": true,
"Catch": [
{
"ErrorEquals": [
"States.TaskFailed"
],
"Next": "HandleError"
}
]
},
"HandleError": {
"Type": "Pass",
"Parameters": {
"errorMessage.$": "$.cause.error"
},
"ResultPath": "$.sumError",
"End": true
}
}
}
该代码示例确保在调用 Lambda 函数时,向其提供正确的输入。如果发生错误,将执行一个 Catch 并在 HandleError 状态中将错误消息传递到 ResultPath 中。