无法通过lambda将数据上载到s3



我正试图通过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

最新更新