Python AWS批处理操作-完成报告,无消息
我在lambda函数中对大量csv文件执行批处理操作。我希望在我的完成报告中包含错误/异常的内容。我只有5%的错误文件,所以lambda可以正常工作,但它不会在报告中写入错误 当我在导致错误的文件上测试lambda时,我看到“ResultMessage”与error或exception相同。我尝试添加一个字符串,但最后一列总是空的 你能帮我吗Python AWS批处理操作-完成报告,无消息,python,amazon-web-services,amazon-s3,aws-lambda,Python,Amazon Web Services,Amazon S3,Aws Lambda,我在lambda函数中对大量csv文件执行批处理操作。我希望在我的完成报告中包含错误/异常的内容。我只有5%的错误文件,所以lambda可以正常工作,但它不会在报告中写入错误 当我在导致错误的文件上测试lambda时,我看到“ResultMessage”与error或exception相同。我尝试添加一个字符串,但最后一列总是空的 你能帮我吗 除ClientError为e外: #如果请求超时,则标记为临时故障 #S3批处理操作将使任务重试。如果 #收到任何其他异常,标记为永久性故障。 error
除ClientError为e外:
#如果请求超时,则标记为临时故障
#S3批处理操作将使任务重试。如果
#收到任何其他异常,标记为永久性故障。
errorCode=e.response['Error']['Code']
errorMessage=e.response['Error']['Message']
如果errorCode=='RequestTimeout':
结果代码='TemporaryFailure'
resultString='由于超时,请重试对Amazon S3的请求。'
其他:
结果代码='PermanentFailure'
resultString='{}:{}'。格式(errorCode,errorMessage)
例外情况除外,如e:
#捕获所有异常以使任务永久失败
结果代码='PermanentFailure'
结果字符串='异常:{}'。格式(e)
最后:
结果.append({
“taskId”:taskId,
“结果代码”:结果代码,
“ResultMessage”:resultString
})
返回{
“invocationSchemaVersion”:invocationSchemaVersion,
“调用ID”:调用ID,
“结果”:结果
}
csv失败的报告的示例行
您的代码没有明显的错误 我查了一下: 响应和结果代码 S3批处理操作期望从Lambda函数获得两级代码。第一个是整个请求的响应代码,第二个是每个任务的结果代码。下表包含响应代码 响应代码 描述 成功 任务正常完成。如果请求作业完成报告,则任务的结果字符串将包含在报告中。 暂时性失败 任务暂时失败,将在作业完成前重新驱动。结果字符串被忽略。如果这是最终重新驱动,则错误消息将包含在最终报告中。 永久性失败 这项任务遭到了永久性的失败。如果请求作业完成报告,则该任务将标记为失败,并包含错误消息字符串。
请向我们展示try块——至少是您正在进行的AWS API调用,如果没有它,很难猜测可能会发生什么错误,因为我们不知道您正在处理什么数据。