Voici mon code API Flask
from flask import request from flask_restful import Resource from mysql.connector import Error from flask_jwt_extended import jwt_required, get_jwt_identity from mysql_connection import get_connection class OrderListResource(Resource): # 내 주문내역 조회 API @jwt_required() def get(self): userId = get_jwt_identity() offset = request.args.get('offset') limit = request.args.get('limit') # 기본값 if not offset: offset = 0 if not limit: limit = 20 try: connection = get_connection() # 주문한 시간이 늦은 순으로 정렬 query = ''' select * from orders where userId = %s order by createdAt desc; limit '''+offset+''', '''+limit+'''; ''' record = (userId, ) cursor = connection.cursor(dictionary=True, buffered=True) cursor.execute(query, record) result_list = cursor.fetchall() for row in result_list: row['reservTime'] = row['reservTime'].isoformat() row['createdAt'] = row['createdAt'].isoformat() cursor.close() connection.close() except Error as e: print(e) cursor.close() connection.close() return {'error' : str(e)}, 500 return {'result' : 'success', 'items' : result_list, 'count' : len(result_list)}, 200
Je l'ai déployé à l'aide d'AWS lambda et je l'ai testé à l'aide de Postman. Fonctionne bien dans l'état local, mais le serveur obtient une "Erreur interne du serveur". Locale AWS lambda
J'ai donc regardé les journaux CloudWatch et j'ai reçu le message d'erreur suivant :
[ERROR] InternalError: Unread result found
Ce qui est bizarre, c'est que parmi toutes les API que j'ai déployées, seule celle-ci m'a donné l'erreur. D'autres API fonctionnent correctement en local et sur le serveur. Donc je ne sais pas où est le problème.
J'ai mis bufferd=True dans curseur() qui est la solution lors de la recherche de l'erreur "résultats non lus trouvés", mais cela n'a aucun effet.
J'ai résolu ce problème ! La raison est : est utilisé deux fois dans la requête. Il s'agit d'un problème simple mais qui fonctionne bien localement, je ne parviens donc pas à en trouver la cause. Désolé.