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.
Actualización más reciente 2022-11-07 GMT+08:00

Gestión de funciones

Información general

La función es una combinación de código, tiempo de ejecución, recursos y ajustes necesarios para lograr un propósito específico. Es la unidad mínima que puede funcionar independientemente. Los activadores pueden activar una función y programar automáticamente los recursos y entornos necesarios para lograr los resultados esperados.

Edición de código en línea

FunctionGraph le permite editar el código de función de la misma manera que administrar un proyecto. Puede crear y editar archivos y carpetas. Después de cargar un paquete ZIP de códigos, puede consultar y editar los códigos en la consola. Tabla 1 describe los menús del editor en línea.

Tabla 1 Menús del editor en línea

Uso

Descripción

File

Crea archivos y carpetas. Puede crear archivos, crear carpetas basadas en plantillas y cerrar todos los archivos.

Edit

Edita el código de función. Puede realizar la operación de deshacer, editar o comentar.

Find

Busca y reemplaza el código.

Go to

Va a una ubicación determinada en el código. Puede ir a una línea especificada, corchetes o la siguiente línea problemática.

View

Proporciona funciones comunes. Puede ver la paleta de comandos y cambiar el tema de visualización.

Test

Prueba una función en línea y muestra el resultado de la prueba, el resumen y los registros.

  • Java es un lenguaje compilado, que no admite la edición de código en línea. Si su función no utiliza ninguna dependencia de terceros, puede cargar un archivo JAR de función. Si su función utiliza dependencias de terceros, comprima las dependencias y el archivo JAR de función en un archivo ZIP y luego cargue el archivo ZIP.
  • Si edita código en Go, comprima el archivo compilado en formato ZIP y asegúrese de que el nombre del archivo de biblioteca dinámica sea coherente con el nombre del complemento del controlador. Por ejemplo, si el nombre del archivo de biblioteca dinámica es function.so, establezca el controlador en function.Handler de acuerdo con Tabla 2.
  • Cuando cree un archivo ZIP, coloque el archivo de controlador bajo el directorio root para asegurarse de que su código puede ejecutarse normalmente después de ser descomprimido.
  • Working directory: Una función puede leer archivos en el directorio de código. El directorio de trabajo de una función es el directorio de nivel superior del archivo de controlador. Para leer el archivo test.conf en el mismo nivel de directorio que el archivo manejador, utilice la ruta relativa code/test.conf o una ruta absoluta (valor de la variable de entorno RUNTIME_CODE_ROOT). Para escribir un archivo (por ejemplo, para crear o descargar un archivo), vaya al directorio /tmp o utilice la función de montaje del sistema de archivos proporcionada por FunctionGraph.

Modificación del código de función

Después de crear una función, la versión predeterminada es la última. Cada función tiene la última versión. Puede modificar una función basándose únicamente en su última versión.

  1. Inicie sesión en la consola FunctionGraph y seleccione Functions > Function List en el panel de navegación.
  2. Haga clic en un nombre de función.
  3. (Opcional) En la página de detalles de la función, seleccione la versión más reciente y haga clic en la ficha Code.
  4. En la página de ficha Code, modifique la información de código de acuerdo con Tabla 2 y Tabla 3.

    Tabla 2 Información de código

    Parámetro

    Descripción

    controlador

    • Para una función Node.js o Python, el controlador puede ser nombrado en el formato de [file name].[function name], que debe contener un punto (.). ". Ingrese myfunction.handler, que indica que el nombre del archivo es myfunction.js (myfunction.py para una función de Python y myfunction.java para una función de Java) y el nombre de la función es manejador.
    • Para una función Java, el controlador debe ser nombrado en el formato de [nombre del paquete].[nombre del archivo].[nombre de la función], por ejemplo, com.xxxxx.exp.Myfunction.myHandler.
    • Para una función Go, el controlador debe ser nombrado en el formato de [nombre del complemento].[nombre de la función], por ejemplo, function.Handler. El nombre de la función debe comenzar con una letra mayúscula y el nombre del controlador puede contener un máximo de 128 caracteres.
    • Para una función C#, el controlador debe ser nombrado en el formato de [nombre de archivo de ensamblado .NET]::[namespace y clase de la función del controlador]::[nombre de la función del controlador], por ejemplo, HelloCsharp::Example.Hello::Handler.

    Iniciador

    Puede habilitar la inicialización de funciones en la página de ficha Configuration. El inicializador debe ser nombrado del mismo modo que el controlador. Por ejemplo, para una función Node.js o Python, establezca un nombre de inicializador en el formato de [file name].[initialization function name].

    NOTA:

    Este parámetro no es necesario si la inicialización de la función está deshabilitada. Para obtener más información sobre cómo crear una función de inicialización, consulte Inicialización de una función.

    Dependencias

    Paquetes de software de terceros requeridos por la función. Puede administrar sus dependencias subiéndolas a FunctionGraph y administrándolas. Si las dependencias son demasiado grandes, súbelas a través de OBS. Para obtener más información, consulte Bibliotecas dependientes.

    NOTA:

    Excepto sus dependencias privadas, el FunctionGraph proporciona algunas dependencias comunes, que puede elegir al crear una función.

    Modos de entrada de código

    Método para introducir el código de función. Para obtener más información sobre los modos de entrada de código admitidos, consulte Tabla 3.

    Tabla 3 Modos de entrada de código

    Tiempo de ejecución

    Modos de entrada de código

    Descripción

    Node.js 6.10/Node.js 8.10/Node.js 10.16/Node.js 12.13/Node.js 14.18

    Editar código en línea

    Editar código en el cuadro de código. Para obtener más información, consulte Tabla 1.

    Subir archivo ZIP

    Haga clic en Select File y cargue un paquete de código local a FunctionGraph. El tamaño del archivo ZIP que se va a cargar no puede exceder los 50 MB. Si supera los 50 MB, cargue el archivo ZIP con un bucket OBS.

    Subir archivo desde OBS

    Pegue la URL de enlace del bucket OBS que almacena un archivo ZIP de código.

    Python 2.7/Python 3.6/Python 3.9

    Editar código en línea

    Editar código en el cuadro de código. Para obtener más información, consulte Tabla 1.

    Subir archivo ZIP

    Haga clic en Select File y cargue un paquete de código local a FunctionGraph. El tamaño del archivo ZIP que se va a cargar no puede exceder los 50 MB. Si supera los 50 MB, cargue el archivo ZIP con un bucket OBS.

    Subir archivo desde OBS

    Pegue la URL de enlace del bucket OBS que almacena un archivo ZIP de código.

    Java 8/Java 11

    Subir archivo ZIP

    Haga clic en Select File y cargue un paquete de código local a FunctionGraph. El tamaño del archivo ZIP que se va a cargar no puede exceder los 50 MB. Si supera los 50 MB, cargue el archivo ZIP con un bucket OBS.

    Subir archivo JAR

    Haga clic en Select File y cargue un archivo JAR local a FunctionGraph. El tamaño del archivo JAR que se va a cargar no puede exceder los 50 MB. Si supera los 50 MB, conviértelo en un archivo ZIP y suba el archivo ZIP a OBS.

    Subir archivo desde OBS

    Pegue la URL de enlace del bucket OBS que almacena un archivo ZIP de código.

    Go 1.8/Go 1.x

    Subir archivo ZIP

    Haga clic en Select File y cargue un paquete de código local a FunctionGraph. El tamaño del archivo ZIP que se va a cargar no puede exceder los 50 MB. Si supera los 50 MB, cargue el archivo ZIP con un bucket OBS.

    Subir archivo desde OBS

    Pegue la URL de enlace del bucket OBS que almacena un archivo ZIP de código.

    C#(.NET Core 2.0)/C#(.NET Core 2.1)/C#(.NET Core 3.1)

    Subir archivo ZIP

    Haga clic en Select File y cargue un paquete de código local a FunctionGraph. El tamaño del archivo ZIP que se va a cargar no puede exceder los 50 MB. Si supera los 50 MB, cargue el archivo ZIP con un bucket OBS.

    Subir archivo desde OBS

    Pegue la URL de enlace del bucket OBS que almacena un archivo ZIP de código.

    PHP 7.3

    Subir archivo ZIP

    Haga clic en Select File y cargue un paquete de código local a FunctionGraph. El tamaño del archivo ZIP que se va a cargar no puede exceder los 50 MB. Si supera los 50 MB, cargue el archivo ZIP con un bucket OBS.

    Subir archivo desde OBS

    Pegue la URL de enlace del bucket OBS que almacena un archivo ZIP de código.

    Si el código que se va a cargar contiene informaciones confidenciales (como contraseñas de cuenta), cífrelas para evitar fugas.

  5. Haga clic en Save.

Modificación de configuraciones de función

Puede definir variables para su función y modificar las configuraciones de la función.

  1. Inicie sesión en la consola FunctionGraph y seleccione Functions > Function List en el panel de navegación.
  2. Haga clic en un nombre de función.
  3. (Opcional) En la página de detalles de la función, seleccione la versión más reciente y haga clic en la ficha Configuration.
  4. Establezca los parámetros descritos en Tabla 4.

    Tabla 4 Parámetros de configuración

    Parámetro

    Descripción

    Description

    Descripción de la función, que no puede superar los 512 caracteres. Modifique la descripción según sea necesario.

    Agency

    Se utiliza para delegar FunctionGraph para acceder a otros servicios en la nube. Por ejemplo, se requiere una delegación cuando FunctionGraph accede a servicios en la nube como OBS o SMN.

    Seleccione una delegación de la lista desplegable. Si no hay ninguna delegación en la lista desplegable, haga clic en Create Agency para crear una en la consola de IAM.

    Para más detalles, consulte Configuración de permisos de delegación.

    Memory (MB)

    Valor: 128, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2560, 3072, 3584 o 4096. Modifique la descripción según sea necesario.

    Initialization Timeout (s)

    Duración máxima de la función puede ser inicializada. Establezca este parámetro si habilita la inicialización de funciones.

    El valor oscila entre 1s y 300s.

    Execution Timeout (s)

    Duración máxima de la función puede ser ejecutada.

    El valor oscila entre 3s y 900s.

    Max. Requests per Instance

    Número de solicitudes simultáneas admitidas por una sola instancia. Rango de valores: 1–100. Para más detalles, consulte Configuración de Single-Instance Multi-Concurrency.

    Max. Instances per Function

    Número máximo de instancias en las que se puede ejecutar una función. –1 (predeterminado): La función puede ejecutarse en cualquier número de instancias. 0: La función está deshabilitada.

    NOTA:

    Las solicitudes que excedan la capacidad de procesamiento de las instancias serán descartadas.

    Los errores causados por solicitudes excesivas no se mostrarán en los registros de funciones. Puede obtener detalles de error haciendo referencia a Configuración de la notificación de ejecución asincrónica.

    VPC Access

    Si el acceso de VPC está habilitado para la función, especifique una delegación con permisos de administración de VPC.

    Encryption Settings

    Pares clave-valor definidos para almacenar información confidencial. Las teclas pueden contener letras, dígitos y guiones bajos (_), y deben comenzar con una letra. Los valores se cifrarán para su almacenamiento y no se mostrarán en texto plano.

    Haga clic en Add now? y establecer claves y valores.

    Para eliminar un par clave-valor, haga clic en Delete junto a él.

    Environment Variables

    Pares clave-valor definidos para la función. Las teclas pueden contener letras, dígitos y guiones bajos (_), y deben comenzar con una letra.

    Haga clic en Add now? y establecer claves y valores.

    Para eliminar un par clave-valor, haga clic en Delete junto a él.

    • La duración máxima para devolver un resultado es de 90s. Si tanto el tiempo de espera establecido como la duración de ejecución real de una función superan los 90s, se visualiza un mensaje que indica que la función ha expirado el tiempo de espera. Sin embargo, el backend todavía está en ejecución. Puede ver el resultado devuelto en la página de ficha Logs.
    • Al definir variables de entorno, el FunctionGraph muestra toda la información de entrada en texto sin formato. Para garantizar la seguridad, no incluya información confidencial.

  5. Haga clic en Save.

Exportación de una función

Puede exportar las funciones que ha creado.

  1. Inicie sesión en la consola FunctionGraph y seleccione Functions > Function List en el panel de navegación.
  2. Haga clic en un nombre de función.
  3. En la página de detalles de la función mostrada, seleccione Operation > Export function en la esquina superior derecha.

    • Un usuario solo puede exportar una función a la vez.
    • El paquete de recursos de función exportado no puede exceder los 50 MB.
    • El nombre del paquete de recursos de función exportado tiene el formato nombre de función + valor MD5 de código de función.zip.
    • El paquete de recursos de función exportado no incluye información de alias.

Desactivación de una función

Las funciones deshabilitadas ya no se pueden ejecutar.

  1. Inicie sesión en la consola FunctionGraph y seleccione Functions > Function List en el panel de navegación.
  2. Haga clic en el nombre de la función que desea deshabilitar.
  3. En la página de detalles de la función mostrada, haga clic en Disable en la esquina superior derecha.
  4. En la página mostrada, haga clic en Yes. La función está desactivada.

    • Solo se pueden desactivar las funciones de la última versión.
    • Las versiones publicadas basadas en la última versión deshabilitada de una función también están deshabilitadas y nunca se pueden habilitar.
    • Después de deshabilitar una función, puede modificar su código pero no puede ejecutar la función.

Habilitación de una función

Las funciones deshabilitadas se pueden activar de nuevo según sea necesario.

  1. Inicie sesión en la consola FunctionGraph y seleccione Functions > Function List en el panel de navegación.
  2. Haga clic en el nombre de la función que desea habilitar.
  3. En la página de detalles de la función mostrada, haga clic en Enable en la esquina superior derecha.

Eliminación de una función

Puede eliminar las funciones no utilizadas para liberar recursos.

  1. Inicie sesión en la consola FunctionGraph y seleccione Functions > Function List en el panel de navegación.
  2. Haga clic en el nombre de la función que desea eliminar.
  3. Seleccione un criterio de búsqueda (nombre de función, tiempo de ejecución o nombre de aplicación) en la esquina superior derecha, introduzca una palabra clave y haga clic en para buscar la función que desea eliminar.
  4. Haga clic en Delete en la misma fila que la función.
  5. En el cuadro de diálogo Delete Function, haga clic en Yes para confirmar la eliminación.