Implementé una aplicación de matraz en aws lambda usando zappa, ahora la aplicación funciona bien en todos los puntos finales, excepto en el principal.
realmente necesito una solución o una idea de cómo superar esto, necesito llamar a la ruta de análisis, la URL implementada es
https://2ixfyfcsik.execute-api.eu-west-2.amazonaws.com/dev
Intenté aumentar el límite de tiempo de espera de mi aplicación. No sirvió de nada. Parece que la puerta de enlace API tiene un tiempo de espera de 30 segundos, entonces, ¿cómo pasar eso o no? Cómo hacer que mi aplicación devuelva los resultados en 30 segundos. Se agradece cualquier ayuda.
from flask import Flask, redirect, url_for, request, jsonify from flask_cors import CORS import os,json from hatesonar import Sonar from profanityfilter import ProfanityFilter app = Flask(__name__) CORS(app) @app.route('/',methods = ['GET']) def index(): return jsonify({"message": "Hello World!"}) @app.route('/test',methods = ['GET']) def test(): results=[] post="Every Day. Narrated by Patch." sonar = Sonar() offensiveLanguage = sonar.ping(text=post) for item in offensiveLanguage['classes']: if (item['class_name']=='hate_speech'): if(item['confidence']>=0.9): hatesonar_hatespeech=item['coinfidence'] else: hatesonar_hatespeech=0 results.append(hatesonar_hatespeech) else: pass if (item['class_name']=='offensive_language'): if(item['confidence']>=0.9): hatesonar_swearing=item['coinfidence'] else: hatesonar_swearing=0 results.append(hatesonar_swearing) return jsonify(results) @app.route('/offensiveLanguage',methods = ['POST', 'GET']) def login(): if request.method == 'POST': user = request.form['nm'] return redirect(url_for('success',name = user)) else: sonar = Sonar() text = request.args.get('text') print("text", text) offensiveLanguage = sonar.ping(text=text) print("offensiveLanguage", offensiveLanguage) return jsonify(offensiveLanguage) @app.route('/analysis',methods = ['GET','POST']) def profanity(): if request.method == 'POST': profanitycount=0 data = request.get_json() posts=[] for item in data: if ('media' in item): for x in item['media']: if(x['mediaType']=='post'): if (x['content']): posts.append(x['content']) else: pass else: pass else: pass flat_list = [] for sublist in posts: for item in sublist: flat_list.append(item) for post in flat_list: pf = ProfanityFilter() swearing = pf.is_profane(post) if(swearing=='true'): profanitycount = profanitycount + 1 else: profanitycount = profanitycount sonar = Sonar() offensiveLanguage = sonar.ping(text=post) print("profanity", profanitycount) return jsonify(profanitycount) if __name__ == '__main__': app.run()
si su solicitud es sincronizada, intente aumentar la memoria en la configuración básica de lambda. Me funcionó (a su función se le asigna una CPU proporcional a la memoria configurada).