Created
January 16, 2023 12:15
-
-
Save SoleeL/61fc282499c721d817b0f58d46d0ed7f to your computer and use it in GitHub Desktop.
Revisions
-
SoleeL created this gist
Jan 16, 2023 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,31 @@ # 1.- Crear la redireccion Seleccionar la maquina virtual y ir a sus configuraciones. Ir a la pestaña "Red" y en el adaptador que estemos usando (yo por defecto lo tengo en NAT) desplegar "Advanced" y dar al boton "Reenvio de puertos". Se abrira una ventana de "Reglas de reenvio de puertos", y al lado derecho habran 2 botones. EL primero (en verde) permite añadir una regla, le damos click se añadira un nuevo registro de reenvio de puerto. Tenemos las columnas de "Nombre", "Protocolo", "IP anfitrion", "Puerto anfitrion", "IP invitado" y "Puerto invitado". Ahora volvemos a la maquina virtual y abrimos una terminal de linux (suponiendo que estemos usando linux). Ingresamos el comando "ifconfig" y nos mostrara los adaptadores de red disponibles. Lo normal es que sean 2, el primero tendra un nombre como "enp0s3" y el segundo "lo". En "enp0s3" deberiamos tener una ip como "10.0.2.15" y en "lo" tenemos 127.0.0.1 (ya que corresponde al localhost de la maquina virtual). Nos interesa el de "enp0s3". Con esta ip volvemos a la ventana de "Reglas de reenvio de puertos" de nuestra maquina virtual y en la columna "IP invitado" colocamos la ip de "enp0s3" y seguido, en la columna "Puerto invitado", colocamos 8000. Ahora en la columna "IP anfritrion" colocamos 127.0.0.1 (no confundirse, esta ip hace referencia al localhost del PC anfitrion, nuestra PC fisica) y en "Puerto anfitrion" colocamos 8000. Le damos al boton "Aceptar", en las 2 ventanas y ya estamos listos con la redireccion. # 2.- Servicio Uvicorn Con la redireccion del puerto deberiamos poder ingresar a "http://127.0.0.1:8000" y deberiamos poder tener acceso al servicio Rest-API de FastAPI. Pero si no configuramos correctamente Uvicorn lo mas probable es que nos aparezca un mensaje de "No se puede acceder a este sitio". Es comun utilizar Uvicorn como gestor del servicio FastApi en red. La linea de comando que tenia para hacer correr el servicio era la siguiente: > uvicorn src.main:get_aplication --reload Explico, se hace la llamada al comando "uvicorn", "src.main:get_aplicacion" llama a ejecutar una funcion llamada "get_aplication" que retorna una instancia de FastAPI en el fichero "main.py" la carpeta "src" de nuestro proyecto (siempre utilizo esta distribucion). El tema es que al no definir el host que Uvicorn debe utilizar para levantar el servicio, linux no lo considera como servicio en red y no da acceso a VirtualBox para redireccionarlo, incluso si es accesible desde la propia maquina virtual. Para solucionar esto se debe añadir a la linea de comando anterior las opciones "--host" y (por si las dudas) "--port". Por lo que terminaremos teniendo. > uvicorn src.main:get_aplicacion --reload --host 0.0.0.0 --port 8000.