Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ FunctionGraph/ Preguntas frecuentes/ Preguntas frecuentes sobre la creación de funciones/ ¿Cuáles son las reglas para empaquetar un proyecto de función?
Actualización más reciente 2023-05-09 GMT+08:00

¿Cuáles son las reglas para empaquetar un proyecto de función?

Además de la edición de código en línea, puede crear una función cargando un archivo ZIP o JAR, o cargando un archivo ZIP desde OBS. Para más detalles, véase Reglas de empaquetado y Ejemplo de paquetes de proyecto ZIP.

Reglas de empaquetado

Además de editar código en línea, puede crear una función cargando un archivo ZIP local o un archivo JAR, o cargando un archivo ZIP desde Object Storage Service (OBS). Tabla 1 describe las reglas para empaquetar un proyecto de función.

Tabla 1 Reglas de empaquetado del proyecto de función

Tiempo de ejecución

Archivo JAR

Archivo ZIP

Archivo ZIP en OBS

Node.js

No se admite.

  • Si los archivos del proyecto de función se guardan bajo el directorio ~/Code/, seleccione y empaquete todos los archivos bajo este directorio para asegurarse de que el controlador de función está bajo el directorio raíz después de descomprimir el archivo ZIP.
  • Si el proyecto de función utiliza las dependencias de terceros, empaquete las dependencias en un archivo ZIP e importe el archivo ZIP en la página de código de función. Alternativamente, empaquete las dependencias de terceros y los archivos de proyecto de función juntos.

Comprima los archivos de proyecto en un archivo ZIP y subirlo a un bucket de OBS.

PHP

No se admite.

  • Si los archivos del proyecto de función se guardan bajo el directorio ~/Code/, seleccione y empaquete todos los archivos bajo este directorio para asegurarse de que el controlador de función está bajo el directorio raíz después de descomprimir el archivo ZIP.
  • Si el proyecto de función utiliza las dependencias de terceros, empaquete las dependencias en un archivo ZIP e importe el archivo ZIP en la página de código de función. Alternativamente, empaquete las dependencias de terceros y los archivos de proyecto de función juntos.

Comprima los archivos de proyecto en un archivo ZIP y subirlo a un bucket de OBS.

Python 2.7

No se admite.

  • Si los archivos del proyecto de función se guardan bajo el directorio ~/Code/, seleccione y empaquete todos los archivos bajo este directorio para asegurarse de que el controlador de función está bajo el directorio raíz después de descomprimir el archivo ZIP.
  • Si el proyecto de función utiliza las dependencias de terceros, empaquete las dependencias en un archivo ZIP e importe el archivo ZIP en la página de código de función. Alternativamente, empaquete las dependencias de terceros y los archivos de proyecto de función juntos.

Comprima los archivos de proyecto en un archivo ZIP y subirlo a un bucket de OBS.

Python 3.6

No se admite.

  • Si los archivos del proyecto de función se guardan bajo el directorio ~/Code/, seleccione y empaquete todos los archivos bajo este directorio para asegurarse de que el controlador de función está bajo el directorio raíz después de descomprimir el archivo ZIP.
  • Si el proyecto de función utiliza las dependencias de terceros, empaquete las dependencias en un archivo ZIP e importe el archivo ZIP en la página de código de función. Alternativamente, empaquete las dependencias de terceros y los archivos de proyecto de función juntos.

Comprima los archivos de proyecto en un archivo ZIP y subirlo a un bucket de OBS.

Java 8

Si la función no hace referencia a los componentes de terceros, compila solo los archivos de proyecto de función en un archivo JAR.

Si la función hace referencia a componentes de terceros, compila los archivos de proyecto de función en un archivo JAR y comprime todos los componentes de terceros y el archivo JAR de función en un archivo ZIP.

Comprima los archivos de proyecto en un archivo ZIP y subirlo a un bucket de OBS.

Go 1.x

No se admite.

Comprima el archivo compilado y asegúrese de que el nombre del archivo binario es consistente con el del controlador. Por ejemplo, si el nombre del archivo binario es Handler, establezca el nombre del controlador en Handler.

Comprima los archivos de proyecto en un archivo ZIP y subirlo a un bucket de OBS.

C#

No se admite.

Compress project files into a ZIP file. The ZIP file must contain the following files: Project_name.deps.json, Project_name.dll, Project_name.runtimeconfig.json, Project_name.pdb, and HC.Serverless.Function.Common.dll.

Comprima los archivos de proyecto en un archivo ZIP y subirlo a un bucket de OBS.

Custom

No se admite.

Comprima los archivos de proyecto en un archivo ZIP. El archivo ZIP debe contener un archivo de arranque.

Comprima los archivos de proyecto en un archivo ZIP y subirlo a un bucket de OBS.

Ejemplo de paquetes de proyecto ZIP

  • Ejemplo de directorio de un paquete de proyecto Nods.js
    Example.zip                            Example project package
    |--- lib                               Service file directory
    |--- node_modules                      NPM third-party component directory
    |--- index.js                          .js handler file (mandatory)
    |--- package.json                      NPM project management file
  • Ejemplo de directorio de un paquete de proyecto PHP
    Example.zip                            Example project package
    |--- ext                               Extension library directory
    |--- pear                              PHP extension and application repository
    |--- index.php                         PHP handler file
  • Ejemplo de directorio de un paquete de proyecto Python
    Example.zip                            Example project package
    |--- com                               Service file directory
    |--- PLI                               Third-party dependency PLI directory
    |--- index.py                          .py handler file (mandatory)
    |--- watermark.py                      .py file for image watermarking
    |--- watermark.png                     Watermarked image
  • Ejemplo de directorio de un paquete de proyecto Java
    Example.zip                            Example project package
    |--- obstest.jar                       Service function JAR file
    |--- esdk-obs-java-3.20.2.jar          Third-party dependency JAR file
    |--- jackson-core-2.10.0.jar           Third-party dependency JAR file
    |--- jackson-databind-2.10.0.jar       Third-party dependency JAR file
    |--- log4j-api-2.12.0.jar              Third-party dependency JAR file
    |--- log4j-core-2.12.0.jar             Third-party dependency JAR file
    |--- okhttp-3.14.2.jar                 Third-party dependency JAR file
    |--- okio-1.17.2.jar                   Third-party dependency JAR file
  • Ejemplo de directorio de un paquete de proyecto Go
    Example.zip                            Example project package
    |--- testplugin.so                     Service function package
  • Ejemplo de directorio de un paquete de proyecto C#
    Example.zip                                   Example project package
    |--- fssExampleCsharp2.0.deps.json            File generated after project compilation
    |--- fssExampleCsharp2.0.dll                  File generated after project compilation
    |--- fssExampleCsharp2.0.pdb                  File generated after project compilation
    |--- fssExampleCsharp2.0.runtimeconfig.json   File generated after project compilation
    |--- Handler                                  Help file, which can be directly used
    |--- HC.Serverless.Function.Common.dll        .dll file provided by FunctionGraph
  • Personalizado
    Example.zip                                   Example project package
    |--- bootstrap                                Executable boot file