Instale las dependencias de terceros para su función de Python, empaquete el código y despliéguelo en Function Compute. Esta guía utiliza la biblioteca emoji como ejemplo práctico.
Elegir un método de despliegue
|
Método |
Ideal para |
Requisitos |
|
pip + carga desde la consola |
Dependencias puras de Python (sin binarios compilados) |
Python 3, pip3 |
|
Serverless Devs + Docker |
Dependencias con extensiones binarias (C/C++, cryptography, numpy, etc.) |
CLI de Serverless Devs, Docker |
Si sus dependencias incluyen archivos binarios compilados, utilice el método de Serverless Devs. Los archivos binarios compilados en macOS o Windows no son compatibles con el entorno Linux donde se ejecuta Function Compute.
Preparativos
Configure un directorio de código local y una función de ejemplo antes de seguir cualquiera de los métodos.
-
Cree un directorio llamado
mycode.Linux y macOS:
mkdir -p /tmp/mycodeWindows: cree una carpeta llamada
mycode
-
En el directorio
mycode, cree el archivoindex.pycon a continuación contenido:from emoji import emojize def handler(event, context): return emojize(":thumbs_up:")
Método 1: usar pip y la consola
Requisitos previos
Antes de empezar, compruebe que cuenta con lo siguiente:
Python 3 instalado en su computadora local, con permiso para ejecutar
pip3Una función de Python creada en la consola de Function Compute. Para consultar las instrucciones de configuración, consulte Create an event function
Instalar dependencias y cargar el paquete
-
Instale la dependencia
emojien el directoriomycode:pip3 install emoji -t .Ejecute este comando desde dentro del directorio
mycode. La opción-t .instala el paquete en el directorio actual en lugar de hacerlo en el directorio global site-packages. -
Empaquete todos los archivos de
mycodeen un archivo ZIP.-
Linux y macOS: vaya al directorio
mycodey ejecute:zip code.zip -r ./*NotaNota: asegúrese de tener permisos de lectura y escritura en el directorio.
Windows: seleccione todos los archivos del directorio
mycode, haga clic derecho y comprímalos en un archivo.zip.
-
-
Cargue el archivo ZIP en la consola de Function Compute:
Localice la función de destino y vaya a su página Function Details.
Haga clic en la pestaña Code.
Haga clic en Upload Code > Upload ZIP Package y luego seleccione
code.zip.Haga clic en Save and Deploy.
Function Compute se ejecuta en un entorno Linux. Si la biblioteca emoji (o cualquier otra dependencia) contiene archivos binarios compilados, es posible que el paquete no se ejecute correctamente si se instaló en macOS o Windows. En ese caso, se recomienda use WebIDE to package third-party dependencies o utilizar el método 2 (Serverless Devs + Docker).
Método 2: usar Serverless Devs y Docker
Serverless Devs compila las dependencias dentro de un contenedor Docker que coincide con el entorno de ejecución Linux de Function Compute. Esto garantiza la compatibilidad binaria.
Requisitos previos
Antes de empezar, compruebe que cuenta con lo siguiente:
Compilar y desplegar
-
Vaya al directorio
mycode:cd /tmp/mycode -
Cree el archivo
s.yamlcon a continuación contenido:edition: 3.0.0 name: fcDeployApp access: "default" vars: # The global variables. region: "cn-hangzhou" resources: hello_world: component: fc3 # The name of the component. props: region: ${vars.region} functionName: "emojipy" description: 'this is emoji' runtime: "python3" code: ./ handler: index.handler memorySize: 128 timeout: 30 environmentVariables: PYTHONUSERBASE: /code/python # Add environment variables to obtain dependencies.code.A continuación se describen los archivos clave de este proyecto:
Archivo
Propósito
Obligatorio
s.yamlConfiguración del proyecto de Serverless Devs
Sí
index.pyCódigo del controlador de la función
Sí
requirements.txtDependencias de Python por instalar
Sí
-
Cree el archivo
requirements.txtcon a continuación contenido:emoji==2.0.0 -
Compile las dependencias dentro de un contenedor Docker:
sudo s build --use-dockerCuando finaliza la compilación, las dependencias se instalan en el directorio
./python. -
Despliegue la función:
sudo s deployTras el despliegue, la función queda disponible en Function Compute.
Pasos siguientes
Utilice las capas de Function Compute para compartir dependencias entre varias funciones sin necesidad de incluirlas en cada paquete de código: