¿Hay alguna forma de implementar una aplicación FastAPI para que el estado de la memoria no se pueda conservar entre solicitudes? El objetivo es evitar la fuga de datos entre solicitudes en una aplicación de múltiples inquilinos.
No parece factible iniciar la aplicación desde cero para cada solicitud, ya que lleva demasiado tiempo. ¿Hay alguna manera en la que la aplicación se inicie para cada instancia del servicio, pero las solicitudes individuales sean manejadas por trabajadores o subprocesos que se eliminen después de que se maneje la solicitud para que cualquier propiedad estática, instancia única y tal se destruya y la siguiente solicitud sea? manejado con memoria limpia?
FastAPI es básicamente sin estado por defecto. En realidad, se necesita trabajo adicional para conservar los datos en las solicitudes a través de métodos como la agrupación de conexiones, la lectura de un valor de Redis, etc. Si considera cosas como iniciar el servidor, cargar una configuración, establecer redireccionamientos de rutas, etc. como "estado", entonces FastAPI no funcionará para sus propósitos.
Cuando dice "estado de la memoria", parece que está tratando de separar las instancias del servidor FastAPI entre sí para que ni siquiera usen la misma memoria. Esta no será una solución viable porque la mayoría de los servidores web, incluido FastAPI, no están diseñados para este tipo de segregación. De forma predeterminada, las solicitudes de un arrendatario no tendrán nada que ver con las solicitudes de otro arrendatario a menos que escriba un código adicional que les permita relacionarse; por lo que separar las preocupaciones de los diferentes inquilinos se convierte en un asunto del programador, no de la memoria del servidor.
En cambio, si no puede permitir que las solicitudes de varios inquilinos ocupen la misma memoria, sería mejor que les diera a diferentes inquilinos su propio subdominio en el nivel de DNS. Active un VPS y una instancia de su programa FastAPI para cada uno de ellos. Eso realmente evitará que las solicitudes de un inquilino compartan cualquier memoria o estado con los demás.