Especifica dependencias

Las dependencias para las aplicaciones de Python se declaran en un archivo requirements.txt estándar. Por ejemplo:

Flask==MAJOR.MINOR.PATCH
google-cloud-storage

Reemplaza MAJOR, MINOR y PATCH por los números de versión de Flask deseados.

Cuando implementas en App Engine, las dependencias que se especifican en el archivo requirements.txt se instalan de manera automática con tu app implementada. Puedes usar cualquier paquete de Python compatible con Linux, incluidos los paquetes que requieren extensiones nativas de C.

De forma predeterminada, App Engine almacena en caché las dependencias recuperadas para reducir los tiempos de compilación. Usa el siguiente comando para instalar una versión de la dependencia no almacenada en caché:

gcloud app deploy --no-cache

Dependencias privadas con Artifact Registry

Si necesitas alojar dependencias privadas para tu app de Python, puedes usar un repositorio de Python de Artifact Registry. Cuando implementas tu app, el proceso de compilación genera automáticamente credenciales de Artifact Registry para la cuenta de servicio de Cloud Build a fin de que no tengas que generar credenciales adicionales. Para incluir dependencias privadas, agrega la URL de Artifact Registry y los paquetes relevantes en tu archivo requirements.txt.

Para especificar varios repositorios, usa un repositorio virtual de Artifact Registry para controlar de forma segura el orden en que pip busca tus repositorios. Por ejemplo:

--index-url REPOSITORY_URL
sampleproject
Flask==MAJOR.MINOR.PATCH
google-cloud-storage

Reemplaza REPOSITORY_URL por la dirección del registro, como se muestra a continuación:

https://REGION_ID-python.pkg.dev/PROJECT_ID/REPOSITORY_NAME/simple

Dependencias privadas con otros repositorios

Las dependencias se instalan en un entorno de Cloud Build que no proporciona acceso a las claves SSH. Los paquetes alojados en repositorios que requieren autenticación basada en SSH se deben copiar en el directorio del proyecto y subir junto con el código del proyecto mediante el administrador de paquetes pip.

Para usar dependencias privadas, sigue estos pasos:

  1. Ejecuta pip install -t lib my_module para copiar las dependencias en una carpeta local llamada lib.

  2. Agrega un archivo __init__.py vacío al directorio lib para convertirlo en un módulo.

  3. Importa el módulo a la app. Por ejemplo:

    import lib.my_module
    

Instala las dependencias de manera local

Cuando desarrolles y pruebes la aplicación de forma local, te recomendamos usar venv para aislar las dependencias de la aplicación de los paquetes del sistema. Esto también garantiza que tus dependencias sean de la misma versión en tu máquina local y en la aplicación implementada.

Para usar venv para instalar dependencias, completa los siguientes pasos:

macOS/Linux

  1. Crea un entorno aislado de Python:
    python3 -m venv env
    source env/bin/activate
  2. Si no estás en el directorio que contiene el código de muestra, navega al directorio que contiene el código de muestra hello_world. Luego, instala las dependencias:
    cd YOUR_SAMPLE_CODE_DIR
    pip install -r requirements.txt

Windows

Usa PowerShell para ejecutar tus paquetes de Python.

  1. Ubica la instalación de PowerShell.
  2. Haz clic derecho en el acceso directo a PowerShell y, luego, inícialo como administrador.
  3. Crea un entorno de Python aislado.
    python -m venv env
    .\env\Scripts\activate
  4. Navegue al directorio del proyecto y luego instale las dependencias. Si no estás en el directorio que contiene el código de muestra, navega al directorio que contiene el código de muestra hello_world. Luego, instala las dependencias:
    cd YOUR_SAMPLE_CODE_DIR
    pip install -r requirements.txt

Esto garantiza que, cuando ejecutes la app de forma local, solo estén disponibles las dependencias que se declaren en el archivo requirements.txt. Las dependencias que instaló App Engine durante la implementación se basan en el contenido del archivo requirements.txt, no en el del directorio env/.

Instala un marco de trabajo web

Deberás usar un marco de trabajo para permitir que tu aplicación entregue las solicitudes web. Puedes usar cualquier marco de trabajo web de Python, incluidos los siguientes:

Para usar un framework web en particular, solo tienes que agregarlo a requirements.txt:

Flask==MAJOR.MINOR.PATCH

Instala un servidor WSGI

Algunos marcos de trabajo tienen servidores WSGI incorporados; sin embargo, pocos son adecuados para entregar el tráfico de producción. La mayoría de las aplicaciones web usan un servidor WSGI independiente, como Gunicorn, uWSGI o Waitress. Para obtener más información sobre la instalación, configuración y uso de un servidor WSGI, consulta el inicio de la aplicación.

Instala bibliotecas cliente de Cloud

Las bibliotecas cliente de Google Cloud para Python es una biblioteca cliente que permite acceder a los servicios de Google Cloud y reduce de forma significativa el código estándar que tienes que escribir. La biblioteca proporciona abstracciones de API de alto nivel y más fáciles de entender. Admite expresiones idiomáticas de Python, funciona bien con la biblioteca estándar de Python y se integra mejor en tu base de código.

Por ejemplo, puedes instalar la biblioteca cliente de Python correspondiente para Datastore o Cloud Storage para integrar esos servicios en tu app.

Para instalar la biblioteca cliente Python para Cloud Datastore:

  1. Instala la biblioteca cliente de forma local a través de pip:

    pip install google-cloud-datastore

  2. Configura la autenticación. Puedes configurar las bibliotecas cliente de Cloud para Java a fin de manejar la autenticación de manera automática. La biblioteca cliente puede manejar automáticamente la autenticación para ti también de forma local a través del Google Cloud CLI.

    gcloud auth login
    
  3. Usa la referencia de Bibliotecas cliente de Datastore para implementar la asistencia para el servicio Cloud Datastore en tu aplicación.

Si deseas obtener una lista completa de todas las bibliotecas cliente de Cloud para Python en los servicios de Google Cloud compatibles, consulta APIs y bibliotecas de Python.