更新时间:2025-08-29 GMT+08:00
分享

FunctionGraph函数模型

介绍FunctionGraph函数模型的返回字段。

函数模型

FunctionGraph函数模型如下。

{
    "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
}

字段说明

FunctionGraph函数字段说明如表1所示。

表1 FunctionGraph函数字段说明

名称

说明

func_urn

函数的URN(Uniform Resource Name),唯一标识函数。

func_name

函数名称。

domain_id

租户名称。

namespace

租户的Project ID。

project_name

租户的Project Name。

package

函数所属的分组Package,用于用户针对函数的自定义分组。

runtime

FunctionGraph函数的执行环境,支持Node.js 6.10、Node.js 8.10、Node.js 10.16、Node.js 12.13、Node.js 14.18、Node.js 16.17、Node.js 18.15、Node.js 20.15、Python 2.7、Python 3.6、Python 3.9、Python 3.10、Python 3.12、Java 8、Java 11、Java 17、Java 21、Go 1.x、C#.NET Core 2.1、C#.NET Core 3.1、C#.NET Core 6.0、C#.NET Core 8.0、Cangjie 1.0、PHP 7.3、PHP 8.3、Custom: 自定义运行时、http: HTTP函数和Custom Image: 自定义镜像函数。

timeout

函数执行超时时间,超时函数将被强行停止,范围3~900秒。

handler

函数执行入口,规则:xx.xx,必须包含“. ”。

举例:对于Node.js函数:myfunction.handler,则表示函数的文件名为myfunction.js,执行的入口函数名为handler。

memory_size

函数消耗的内存,单位M。

取值范围为:128、256、512、768、1024、1280、1536、1792、2048、2560、3072、3584、4096、8192、10240。最小值为128,最大值为10240。

cpu

函数占用的CPU资源。

code_type

函数代码类型,取值有4种:

  • inline:UI在线编辑代码。
  • zip:函数代码为zip包。
  • jar:函数代码为jar包,主要针对Java函数。
  • obs:函数代码来源于OBS存储。

code_url

  • 当“code_type”为“obs”时,该值为函数代码包在OBS上的地址。
  • 当“code_type”为“inline”、“zip”或“jar”时,该字段为空。

code_filename

函数的文件名。

  • 当“code_type”为“zip”或“jar”时,必须提供该字段。
  • 当“code_type”为“obs”或“inline”,不需要提供该字段。

code_size

函数大小,单位:字节。

user_data

用户自定义的name/value信息,在函数中使用的参数。

举例:如函数要访问某个主机,可以设置自定义参数:Host={host_ip},总长度不超过4KB。

digest

函数代码SHA512 hash值,用于判断函数是否变化。

version

函数版本号,由系统自动生成,规则:vYYYYMMDD-HHMMSS(v+年月日-时分秒)。

image_name

函数版本的内部标识。

xrole

函数使用的权限委托名称,需要IAM支持,并在IAM界面创建委托,当函数需要访问其他服务时,必须提供该字段。

app_xrole

函数app使用的权限委托名称,需要IAM支持,并在IAM界面创建委托,当函数需要访问其他服务时,必须提供该字段。

description

函数描述。

version_description

函数版本描述。

last_modified

函数最后一次更新时间。

func_code

函数代码,请参考表2。

depend_list

依赖包列表。

strategy_config

函数策略配置,请参考表3。

extend_config

函数扩展配置。

dependencies

依赖代码包列表,请参考表5。

initializer_handler

函数初始化入口,规则:xx.xx,必须包含“. ”。

举例:对于Node.js函数:myfunction.initializer,则表示函数的文件名为myfunction.js,初始化的入口函数名为initializer。

initializer_timeout

初始化超时时间,超时函数将被强行停止,范围1 ~ 300秒。

func_vpc

vpc配置,请参考表4。

mount_config

文件系统配置,请参考表6 mount_config参数说明。

表2 func_code参数说明

参数

说明

file

函数代码内容,接口返回空。

link

函数代码链接,接口返回空。

表3 strategy_config参数说明

参数

说明

concurrency

  • 0:函数被禁用。
  • -1:函数被启用。
表4 func_vpc参数说明

参数

类型

是否必选

说明

vpc_name

String

否

虚拟私有云名称

vpc_id

String

当func_vpc非空时必选

虚拟私有云唯一标识

subnet_name

String

否

子网名称

subnet_id

String

当func_vpc非空时必选

子网编号

cidr

String

否

子网掩码

gateway

String

否

网关

表5 dependency参数说明

参数

类型

是否必选

说明

owner

String

否

依赖包属主的domainId

link

String

否

依赖包在OBS上的链接

runtime

String

否

依赖包语言类型(仅作为分类条件)

etag

String

否

依赖包md5值

size

Int

否

依赖包大小

name

String

否

依赖包名称

description

String

否

依赖包描述

file_name

String

否

依赖包文件名(如果创建方式为zip时)

表6 mount_config参数说明

参数

类型

是否必选

说明

mount_user

mount_user

否

文件系统用户配置

func_mounts

func_mounts

否

文件系统列表

表7 mount_user参数说明

参数

类型

是否必选

说明

user_id

Int

mount_user非空时必选

用户ID,-1 ~ +65534的整数(0、1000、1002除外)

user_group_id

Int

mount_user非空时必选

用户组ID,-1 ~ +65534的整数(0、1000、1002除外)

表8 func_mounts参数说明

参数

类型

是否必选

说明

mount_type

String

func_mounts非空时必选

挂载类型(sfs/sfsTurbo/ecs)

  • sfs:sfs容量型

  • sfsTrubo:弹性文件服务

  • ecs:ecs服务器

mount_resource

String

func_mounts非空时必选

挂载资源ID(对应云服务ID)

mount_share_path

String

“mount_type”为“ecs”时,必选

远端挂载路径(例如192.168.0.12:/data)

local_mount_path

String

func_mounts非空时必选

函数访问路径

funcurn格式说明

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

Funcurn使用冒号分隔为8个域,region_id为系统配置的值(测试时可以填成与后台相同的值),最后一个中括号的内容表示可以为函数的版本号,也可以为该版本指向的别名,如果为别名时需要在名称前加上感叹号!以示区分。

当作为API参数时,可以提供简化格式的Funcurn,具体如下。

  • 提供1个域:解析为<function_name>,“project_id”从token中获取,“package”为“default”,“version”为“latest”。
  • 提供2个域:解析为<package>:<function_name>,“project_id”从token中获取,“version”为“latest”。
  • 提供3个域:解析为<project_id>:<package>:<function_name>,“version”为“latest”。
  • 提供4个域:解析为<project_id>:<package>:<function_name>:<Version or Alias>。
  • 提供7个域:解析为urn:fss:<region_id>:<project_id>:function:<package>:<function_name>,“version”为“latest”。
  • 提供8个域:解析为urn:fss:<region_id>:<project_id>:function:<package>:<function_name>:<Version or Alias>。

函数实例数据

{

"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": "使用API网关调用函数,在函数中演示了返回不同的内容,如HTML页面和json结构体。",

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

"func_code": {},

"FuncCode": {},

"concurrency": -1,

"strategy_config": {

"concurrency": -1

},

"enterprise_project_id": "0"

}

相关文档