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

Modelo de función

Esta sección describe los campos devueltos del modelo de función de FunctionGraph.

Modelo de función

El modelo de función de FunctionGraph es el siguiente:

{ 
  "functions": [ 
   { 
    "func_urn": "urn:fss:xxxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test", 
    "func_name": "test", 
    "domain_id": "cff01_hk", 
    "namespace": "7aad83af3e8d42e99ac194e8419e2c9b", 
    "project_name": "xxxxxxxxxx", 
    "package": "default", 
    "runtime": "Node.js6.10", 
    "timeout": 3, 
    "handler": "test.handler", 
    "memory_size": 128, 
    "cpu": 300, 
    "code_type": "inline", 
    "code_url": "", 
    "code_filename": "index.js", 
    "code_size": 272, 
    "user_data": "", 
    "digest": "decbce6939297b0b5ec6d1a23bf9c725870f5e69fc338a89a6a4029264688dc26338f56d08b6535de47f15ad538e22ca66613b9a46f807d50b687bb53fded1c6", 
    "version": "latest", 
    "image_name": "latest-5qe8e", 
    "xrole": "cff",
    "app_xrole": null, 
    "description": "111", 
    "version_description": "", 
    "last_modified": "2018-03-28T11:30:32+08:00",
"func_code": {
  "file": "",
  "link": ""
 },
 "func_vpc":null,
 "mount_config":null,
 "depend_list": null,
 "strategy_config": {
     "concurrency": -1
 },
 "extend_config": "",
 "dependencies": null,
"initializer_handler": "index.initializer",
"initializer_timeout": 3  
   } 
  ], 
  "next_marker": 45 
 }

Descripción

Tabla 1 describe los parámetros en el modelo de función.

Tabla 1 Parámetros en el modelo de función

Parámetro

Descripción

func_urn

Function URN.

func_name

Nombre de la función.

domain_id

Nombre del tenant.

namespace

ID del proyecto del tenant.

project_name

Nombre del proyecto del tenant.

package

Grupo al que pertenece la función. Este campo se define para agrupar las funciones.

runtime

Entorno para ejecutar la función. FunctionGraph admite Node.js 6.10, Node.js 8.10, Node.js 10.16, Node.js 12.13, Python 2.7, Python 3.6, Java 8, Go 1.8, Go 1.x, C# (.NET Core 2.0), C# (.NET Core 2.1), C# (.NET Core 3.1), y PHP 7.3.

timeout

Duración máxima de la función puede ser ejecutada. Rango de valores: 3s–900s.

handler

Manejador de la función en el formato de "xx.xx". Debe contener un período (.).

Por ejemplo, para la función de Node.js myfunction.handler, el nombre del archivo es myfunction.js, y la función de punto de entrada es handler.

memory_size

Memoria (MB) consumida por la función.

Opciones: 128, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2560, 3072, 3584 y 4096.

cpu

Número de millicores de CPU utilizados por la función (1 núcleo = 1000 millicores).

El valor de este campo es proporcional al de "MemorySize". De forma predeterminada, se requieren 100 millicores de CPU para 128 MB de memoria. El valor se calcula de la siguiente manera: Memoria/128 x 100 + 200 (millicores básicos de CPU).

code_type

Tipo de código de función. Opciones:

  • inline: código en línea
  • zip: archivo ZIP
  • jar: archivo JAR (principalmente para funciones Java)
  • obs: código de función almacenado en un bucket del Object Storage Service (OBS)

code_url

  • Cuando code_type se establece en obs, este parámetro indica la dirección de un paquete de código de función en OBS.
  • Cuando code_type se establece en inline, zip o jar, este parámetro se deja en blanco.

code_filename

Nombre de archivo de función.

  • Cuando code_type se establece en zip o jar, este parámetro es necesario.
  • Cuando code_type se establece en obs o inline, este parámetro no es necesario.

code_size

Tamaño del código en bytes.

user_data

Información de Nombre/Valor definida para la función.

Por ejemplo, si una función necesita acceder a un host, defina Host={host_ip}. Puede definir un máximo de 20 parámetros de este tipo y su longitud total no puede superar los 4 KB.

digest

Valor hash SHA512 del código de función, que se usa para determinar si la función se cambia.

version

Versión de la función, que es generada automáticamente por el sistema. El nombre de la versión tiene el formato "vYYYYMMDD-HHMMSS" (v+año/mes/día-hora/minuto/segundo).

image_name

Identificador interno de una versión de función.

xrole

Agencia utilizada por la función. Debe crear una delegación en la consola de Identity and Access Management (IAM). Este campo es obligatorio cuando una función necesita acceder a otros servicios.

app_xrole

Agencia utilizada por la aplicación de función. Es necesario crear una delegación en la consola IAM. Este campo es obligatorio cuando una función necesita acceder a otros servicios.

description

Descripción de la función.

version_description

Descripción de la versión de la función.

last_modified

Hora en la que se actualizó por última vez la función.

func_code

Código de función. Véase Tabla 2.

depend_list

Lista de dependencias.

strategy_config

Configuración de la política de función. Véase Tabla 3.

extend_config

Configuración de extensión de función.

dependencies

Lista de dependencias. Véase Tabla 5.

initializer_handler

Iniciador de la función en el formato de "xx.xx". Debe contener un período (.).

Por ejemplo, para la función de Node.js myfunction.initializer, el nombre del archivo es myfunction.js, y la función de inicialización es initializer.

initializer_timeout

Duración máxima de la función puede ser inicializada. Rango de valores: 1s–300s.

func_vpc

Configuración de la nube privada virtual (VPC). Véase Tabla 4.

mount_config

Configuración del sistema de archivos. Véase Tabla 6.

Tabla 2 parámetros de func_code

Parámetro

Descripción

file

Código de función. No se devolverá nada.

link

Enlace de código de función. No se devolverá nada.

Tabla 3 parámetros de strategy_config

Parámetro

Descripción

concurrency

  • 0: La función está deshabilitada.
  • -1: La función está habilitada.
Tabla 4 parámetros de func_vpc

Parámetro

Tipo

Obligatorio

Descripción

vpc_name

String

-

Nombre de la VPC.

vpc_id

String

Sí cuando func_vpc no está vacío.

ID de VPC.

subnet_name

String

-

Nombre de subred.

subnet_id

String

Sí cuando func_vpc no está vacío.

ID de subred.

cidr

String

-

Máscara de subred.

gateway

String

-

Gateway.

Tabla 5 Parámetros de dependencia

Parámetro

Tipo

Obligatorio

Descripción

owner

String

-

ID de dominio del propietario de la dependencia.

link

String

-

URL del paquete de dependencias en OBS.

runtime

String

-

Lenguaje del paquete de dependencias (solo utilizado para fines de clasificación).

etag

String

-

Valor MD5 del paquete de dependencias.

size

Int

-

Tamaño del paquete de dependencias.

name

String

-

Nombre del paquete de dependencias.

description

String

-

Descripción del paquete de dependencias.

file_name

String

-

Nombre de archivo del paquete de dependencias (ZIP).

Tabla 6 Parámetros de mount_config

Parámetro

Tipo

Obligatorio

Descripción

mount_user

mount_user

-

Configuración del usuario del sistema de archivos.

func_mounts

func_mounts

-

Lista del sistema de archivos.

Tabla 7 Parámetros de mount_user

Parámetro

Tipo

Obligatorio

Descripción

user_id

Int

Sí cuando mount_user no está vacío.

ID de usuario, que es un número entero de –1 a 65,534 excluyendo 0, 1000 y 1002.

user_group_id

Int

Sí cuando mount_user no está vacío.

ID del grupo de usuarios, que es un número entero de –1 a 65,534 excluyendo 0, 1000 y 1002.

Tabla 8 Parámetros de func_mounts

Parámetro

Tipo

Obligatorio

Descripción

mount_type

String

Sí cuando func_mounts no está vacío.

Tipo de montaje. Opciones: sfs, sfsTurbo, y ecs.

mount_resource

String

Sí cuando func_mounts no está vacío.

ID del recurso montado (servicio en la nube correspondiente).

mount_share_path

String

Sí cuando mount_type se establece en ecs.

Ruta de montaje remoto. Ejemplo: 192.168.0.12:/data.

local_mount_path

String

Sí cuando func_mounts no está vacío.

Ruta de acceso de función.

Formato de URN de función

urn:fss:<region_id>:<project_id>:function:<package>:<function_name>[:<version>|:!<alias>]

Un URN de la función se divide en ocho campos por dos puntos. El valor de region_id se incluye en la configuración del sistema. Puede establecer este parámetro en el mismo que en el backend. El contenido entre corchetes ([]) es una versión o alias de función. Si introduce un alias, agregue un signo de exclamación (!) delante de él para una fácil identificación.

Cuando se utiliza un URN de función como un parámetro de API, puede proporcionarlo en un formato simplificado de la siguiente manera:

  • 1 campo: <function_name>. project_id se obtiene de un token, package es predeterminado y la versión es más reciente.
  • 2 campos: <package>:<function_name>. project_id se obtiene de un token, y la versión es más reciente.
  • 3 campos: <project_id>:<package>:<function_name>. La versión es más reciente.
  • 4 campos: <project_id>:<package>:<function_name>:<Version or Alias>.
  • 7 campos: urn:fss:<region_id>:<project_id>:function:<package>:<function_name>. La versión es más reciente.
  • 8 campos: urn:fss:<region_id>:<project_id>:function:<package>:<function_name>:<Version or Alias>.

Datos de instancia de función

{

"func_urn":"urn:fss:xxxxxxxxx:73d69ae0cfcf460190522d060f05ad:function:default:auto_testfunc93749",

"func_name":"auto_testfunc93749",

"domain_id":"b8aca445e0d04d81a34bb59de5280c72",

"namespace":"73d69ae0cfcf460190522d060f05ad",

"project_name":"xxxxxxxxx",

"package":"default",

"runtime":"Python2.7",

"timeout":5,

"handler":"index.handler",

"memory_size":128,

"cpu":300,

"code_type":"inline",

"code_filename":"index.py",

"code_size":1992,

"version":"latest",

"image_name": "latest-200731100126@obffv",

"description": "Runs in response to API requests, and demonstrates how to display different types of content, such as HTML pages and JSON structures.",

"last_modified": "2020-07-31T10:01:26+08:00",

"func_code": {},

"FuncCode": {},

"concurrency": -1,

"strategy_config": {

"concurrency": -1

},

"enterprise_project_id": "0"

}