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.
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:
|
code_url |
|
code_filename |
Nombre de archivo de función.
|
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. |
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. |
Parámetro |
Descripción |
---|---|
concurrency |
|
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. |
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). |
Parámetro |
Tipo |
Obligatorio |
Descripción |
---|---|---|---|
mount_user |
- |
Configuración del usuario del sistema de archivos. |
|
func_mounts |
- |
Lista del sistema de archivos. |
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. |
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"
}