¿Cómo distingue FastAPI varios entornos: entorno de desarrollo/prueba/prelanzamiento/producción?

1 Dependencia

Comenzando a desarrollar proyectos con FastAPI,
distinguir los entornos es el primer paso en la implementación, por lo tanto, es necesario distinguir los entornos dev/test/pre/prod,
y FastAPI solo proporciona parámetros para leer los archivos de configuración del entorno, que se pueden especificar al iniciar el servicio La ruta del archivo,
el parámetro es env_file, y el módulo para leer env_file es python-dotenv, que
debe instalarse manualmente:

pip install python-dotenv

Hay dos formas de usarlo:
(1) Configurar en el método de ejecución: env_file=file_path
(2) Usar en Docker: "--env-file", "file_path"
compartir de la siguiente manera para ayudar a los lectores que necesitan usar el desarrollo de FastAPI para lidiar fácilmente con la división del entorno.

2 aplicaciones

2.1 Agregar archivos de entorno

desplegar/dev.env
inserte la descripción de la imagen aquí

  • Formato del contenido del archivo
    : clave = valor
    Los datos de lectura son todos de tipo str, por lo tanto, recuerde convertir los datos de tipo int,
    si el valor es una cadena vacía, los datos de lectura son Ninguno, por lo tanto, solo necesita marcar Ninguno.
REDIS_HOST = "192.168.179.128"
REDIS_PORT = 6379

2.2 Configurar los parámetros del entorno

Usar parámetros de inicio: env_file, ruta del archivo de configuración

if __name__ == "__main__":
    env_file_path = "deploy/prod.env"
    uvicorn.run(host="0.0.0.0", port=8000, app="main:app", reload=True, env_file=env_file_path)

2.3 Cómo obtener el contenido de configuración

import os

REDIS_HOST = os.getenv("REDIS_HOST")
REDIS_PORT = int(os.getenv("REDIS_PORT"))

3 principios

3.1 ejecución del método de inicio

Hay muchos parámetros para ejecutar el método de inicio de uvicorn. El código fuente se muestra en la siguiente figura.
Busque el archivo env que necesitamos para configurar la ruta del archivo de entorno.
Ubicación: uvicorn.main.run
inserte la descripción de la imagen aquí
Cuando env_file no está vacío, el método para leer env_file es: load_dotenv
inserte la descripción de la imagen aquí

El código fuente del método load_dotenv es el siguiente: Del código fuente podemos ver que
la lógica de lectura específica está en el método: set_as_environment_variables.
Ubicación: dotenv.main.load_dotenv

inserte la descripción de la imagen aquí

El código fuente del método set_as_environment_variables se muestra en la siguiente figura.
A partir del código fuente, los datos obtenidos de env_file se escriben en la configuración del entorno a través de os.environ.
Por lo tanto, el valor correspondiente se puede obtener a través de os.getenv(key_name) .

Ejemplo: dotenv.main.DotEnv.set_as_environment_variables
inserte la descripción de la imagen aquí

4 Resumen

(1) FastAPI proporciona muchos parámetros de inicio, incluida la configuración del entorno, que se pasa a través del parámetro env_file. Si es un Dockerfile, use –env_file para pasar el parámetro; (2) El módulo para leer el
archivo env_file es python-dotenv ;
(3) Los datos adquiridos son todos de tipo cadena, si hay otro tipo de datos, preste atención para convertir el tipo de datos.

Supongo que te gusta

Origin blog.csdn.net/Xin_101/article/details/130474481
Recomendado
Clasificación