Aws lambda 为什么pymysql conn.close()是在CORS错误时执行的?

Aws lambda 为什么pymysql conn.close()是在CORS错误时执行的?,aws-lambda,pymysql,Aws Lambda,Pymysql,首先,我希望你能理解我的蹩脚英语 AWS API网关(HTTP API,CORS安装程序未执行任何操作。)+Lambda+Pymysql当前正在使用。 奇怪的是,“返回数据”之前的“conn.close()”会导致CORS错误 下面是代码和实际错误屏幕 def lambda_handler(event, context): sg_dict = {} try: cur = conn.cursor() sg_dict = sg_select_query

首先,我希望你能理解我的蹩脚英语

AWS API网关(HTTP API,CORS安装程序未执行任何操作。)+Lambda+Pymysql当前正在使用。 奇怪的是,“返回数据”之前的“conn.close()”会导致CORS错误

下面是代码和实际错误屏幕

def lambda_handler(event, context):
    sg_dict = {}
    try:
        cur = conn.cursor()
        sg_dict = sg_select_query(cur)
        if sg_dict != {}:
            sg_dict = ec2_select_query(cur, sg_dict)
        
        conn.close()
        return {
            'statusCode': 200,
            'headers': {
                'Access-Control-Allow-Headers': 'Content-Type',
                'Access-Control-Allow-Origin':  '*',
                'Access-Control-Allow-Methods': 'GET'
            },
            'body': json.dumps(sg_dict)
        }
    except:
        import traceback
        print(traceback.format_exc())
        conn.close()
        return {
            'statusCode': 500,
            'body': 'error'
        }

但是,将“conn.close()”更改为“#conn.close()”将正常执行

我真的不知道为什么会这样。请分享你的经验。 多谢各位

---在210414 11:17(格林尼治标准时间+9)上添加图像---


我可以看到有两个conn.close,每个try-and-catch块中有一个。哪一个引起了问题?您也可以共享一些日志吗?每次lambda返回500,都会导致浏览器中出现CORS错误(这是正常的)。请在lambda代码中添加打印日志结果(traceback.format_exc())更改为仅运行conn.close()一次。(请检查我问题中添加的图像。)尽管如此,CORS错误仍在继续发生-(.我将查找log.has pymysql connection auto close函数?在不调用“close”函数时没有执行错误。