我正试图通过lambda函数从trust advisor中提取数据并上传到s3。函数的某些部分对数据执行附加模块。但是,该模块块引发错误。该特定块是
try:
check_summary = support_client.describe_trusted_advisor_check_summaries(
checkIds=[checks['id']])['summaries'][0]
if check_summary['status'] != 'not_available':
checks_list[checks['category']].append(
[checks['name'], check_summary['status'],
str(check_summary['resourcesSummary']['resourcesProcessed']),
str(check_summary['resourcesSummary']['resourcesFlagged']),
str(check_summary['resourcesSummary']['resourcesSuppressed']),
str(check_summary['resourcesSummary']['resourcesIgnored'])
])
else:
print("unable to append checks")
except:
print('Failed to get check: ' + checks['name'])
traceback.print_exc()
错误记录
unable to append checks
我是Python的新手。所以,不确定如何在else:语句下检查trackback堆栈。此外,我在上面做了什么错事吗?Plz帮助
您没有在任何地方调用s3_upload
函数,而且代码无效,因为其中有未初始化的file_name变量。
我观察了您的脚本-
-
traceback.print_exc()
这应该在return语句之前执行,以便python编译器能够识别障碍/错误 -
if __name__ == '__main__':
lambda_handler
只有当用于执行某些代码时,这才有效——只有当文件是直接运行的,而不是导入的。 -
根据文献CCD_ 5方法的前三个参数,
def put_object(self, bucket_name, object_name, data, length,
修复put_object的参数。 -
您没有在lambda中使用
s3_upload
。