更新时间:2024-03-14 GMT+08:00

获取函数的metadata

功能介绍

获取指定函数的metadata。

URI

GET /v2/{project_id}/fgs/functions/{function_urn}/config

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户项目 ID,获取方式请参见获取项目ID

function_urn

String

函数的URN,详细解释见FunctionGraph函数模型的描述。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

Content-Type

String

消息体的类型(格式)

响应参数

状态码: 200

表3 响应Body参数

参数

参数类型

描述

func_id

String

函数id,唯一标识函数。

resource_id

String

资源id。

func_urn

String

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

func_name

String

函数名称。

domain_id

String

域名id。

namespace

String

租户的project id。

project_name

String

租户的project name。

package

String

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

runtime

String

FunctionGraph函数的执行环境 Python2.7: Python语言2.7版本。 Python3.6: Pyton语言3.6版本。Python3.9: Python语言3.9版本。 Python3.10: Python语言3.10版本。Go1.8: Go语言1.8版本。Go1.x: Go语言1.x版本。Java8: Java语言8版本。Java11: Java语言11版本。Java17: Java语言17版本(当前仅支持华北-乌兰察布二零二)。Node.js6.10: Nodejs语言6.10版本。Node.js8.10: Nodejs语言8.10版本。Node.js10.16: Nodejs语言10.16版本。Node.js12.13: Nodejs语言12.13版本。Node.js14.18: Nodejs语言14.18版本。Node.js16.17: Nodejs语言16.17版本。Node.js18.15: Nodejs语言18.15版本。C#(.NET Core 2.0): C#语言2.0版本。C#(.NET Core 2.1): C#语言2.1版本。C#(.NET Core 3.1): C#语言3.1版本。 C#(.NET Core 6.0): C#语言6.0版本(当前仅支持华北-乌兰察布二零二)。Custom: 自定义运行时。PHP7.3: Php语言7.3版本。Cangjie1.0:仓颉语言1.0版本。http: HTTP函数。Custom Image: 自定义镜像函数。

枚举值:

  • Java8
  • Java11
  • Java17
  • Node.js6.10
  • Node.js8.10
  • Node.js10.16
  • Node.js12.13
  • Node.js14.18
  • Node.js16.17
  • Node.js18.15
  • Python2.7
  • Python3.6
  • Python3.10
  • Go1.8
  • Go1.x
  • C#(.NET Core 2.0)
  • C#(.NET Core 2.1)
  • C#(.NET Core 3.1)
  • C#(.NET Core 6.0)
  • Custom
  • PHP7.3
  • Python3.9
  • http
  • Custom Image
  • Cangjie1.0

timeout

Integer

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

handler

String

函数执行入口 规则:xx.xx,必须包含“. ” 举例:对于node.js函数:myfunction.handler,则表示函数的文件名为myfunction.js,执行的入口函数名为handler。

memory_size

Integer

函数消耗的内存。 单位M。 取值范围为:128、256、512、768、1024、1280、1536、1792、2048、2560、3072、3584、4096。 最小值为128,最大值为4096。

gpu_memory

Integer

函数消耗的显存,只支持自定义运行时与自定义镜像函数配置GPU。 单位MB。 取值范围为:1024、2048、3072、4096、5120、6144、7168、8192、9216、10240、11264、12288、13312、14336、15360、16384。 最小值为1024,最大值为16384。

cpu

Integer

函数占用的cpu资源。 单位为millicore(1 core=1000 millicores)。 取值与MemorySize成比例,默认是128M内存占0.1个核(100 millicores)。

code_type

String

函数代码类型,取值有5种。 inline: UI在线编辑代码。 zip: 函数代码为zip包。 obs: 函数代码来源于obs存储。 jar: 函数代码为jar包,主要针对Java函数。 Custom-Image-Swr: 函数代码来源与SWR自定义镜像。

枚举值:

  • inline
  • zip
  • obs
  • jar
  • Custom-Image-Swr

code_url

String

当CodeType为obs时,该值为函数代码包在OBS上的地址,CodeType为其他值时,该字段为空。

code_filename

String

函数的文件名,当CodeType为jar/zip时必须提供该字段,inline和obs不需要提供。

code_size

Long

函数大小,单位:字节。

user_data

String

用户自定义的name/value信息。 在函数中使用的参数。 举例:如函数要访问某个主机,可以设置自定义参数:Host={host_ip},最多定义20个,总长度不超过4KB。

encrypted_user_data

String

用户自定义的name/value信息,用于需要加密的配置。

digest

String

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

version

String

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

image_name

String

函数版本的内部标识。

xrole

String

函数配置委托。需要IAM支持,并在IAM界面创建委托,当函数需要访问其他服务时,必须提供该字段。配置后用户可以通过函数执行入口方法中的context参数获取具有委托中权限的token、ak、sk,用于访问其他云服务。如果用户函数不访问任何云服务,则不用提供委托名称。

app_xrole

String

函数执行委托。可为函数执行单独配置执行委托,这将减小不必要的性能损耗;不单独配置执行委托时,函数执行和函数配置将使用同一委托。

description

String

函数描述。

last_modified

String

函数最后一次更新时间。

ephemeral_storage

Integer

临时存储大小。默认情况下会为函数的/tmp目录分配512MB的空间。您可以通过临时存储设置将函数的/tmp目录大小调整为10G。

枚举值:

  • 512
  • 10240

func_vpc

FuncVpc object

函数vpc配置。需同时为函数配置具有vpc权限的委托。

mount_config

MountConfig object

函数挂载配置。

depend_list

Array of strings

依赖id列表

depend_version_list

Array of strings

依赖版本id列表

strategy_config

StrategyConfig object

函数策略配置。

dependencies

Array of Dependency objects

函数依赖代码包列表。

initializer_handler

String

函数初始化入口,规则:xx.xx,必须包含“. ”。当配置初始化函数时,此参数必填。 举例:对于node.js函数:myfunction.initializer,则表示函数的文件名为myfunction.js,初始化的入口函数名为initializer。

initializer_timeout

Integer

初始化超时时间,超时函数将被强行停止,范围1~300秒。当配置初始化函数时,此参数必填。

pre_stop_handler

String

函数预停止函数的入口,规则:xx.xx,必须包含“. ”。 举例:对于node.js函数:myfunction.pre_stop_handler,则表示函数的文件名为myfunction.js,初始化的入口函数名为pre_stop_handler。

pre_stop_timeout

Integer

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

enterprise_project_id

String

企业项目ID,在企业用户创建函数时必填。

long_time

Boolean

是否允许进行长时间超时设置。

log_group_id

String

自定义日志查询组id

log_stream_id

String

自定义日志查询流id

type

String

v2表示为正式版本,v1为废弃版本。

枚举值:

  • v1
  • v2

enable_cloud_debug

String

适配CloudDebug场景,是否开启云调试(已废弃)

enable_dynamic_memory

Boolean

是否允许动态内存配置

is_stateful_function

Boolean

是否支持有状态,如果需要支持,需要固定传参为true,v2版本支持

is_bridge_function

Boolean

是否为bridge函数

enable_auth_in_header

Boolean

是否允许在请求头中添加鉴权信息,只支持自定义镜像函数

custom_image

CustomImage object

用户容器镜像。

reserved_instance_idle_mode

Boolean

是否开启预留实例闲置模式

apig_route_enable

Boolean

是否配置下沉apig路由规则。

heartbeat_handler

String

心跳函数函数的入口,规则:xx.xx,必须包含“. ”,只支持JAVA运行时配置。 心跳函数入口需要与函数执行入口在同一文件下。在开启心跳函数配置时,此参数必填。

enable_class_isolation

Boolean

类隔离开关,只支持JAVA运行时配置。开启类隔离后可以支持Kafka转储并提升类加载效率,但也可能会导致某些兼容性问题,请谨慎开启。

gpu_type

String

显卡类型。

allow_ephemeral_storage

Boolean

是否支持配置临时存储。

network_controller

NetworkControlConfig object

函数网络配置。

is_return_stream

Boolean

是否返回流式数据(已废弃)

表4 FuncVpc

参数

参数类型

描述

domain_id

String

域名id。

namespace

String

租户的project id。

vpc_name

String

虚拟私有云名称。

vpc_id

String

虚拟私有云唯一标识。

subnet_name

String

子网名称。

subnet_id

String

子网编号。

cidr

String

子网掩码。

gateway

String

网关。

security_groups

Array of strings

安全组

表5 MountConfig

参数

参数类型

描述

mount_user

MountUser object

挂载用户信息。

func_mounts

Array of FuncMount objects

函数挂载列表。

表6 MountUser

参数

参数类型

描述

user_id

String

用户ID(-1~65534的非0整数)

user_group_id

String

用户组ID(-1~65534的非0整数)

表7 FuncMount

参数

参数类型

描述

mount_type

String

挂载类型(sfs/sfsTurbo/ecs),func_mounts非空时必选。

mount_resource

String

挂载资源ID(对应云服务ID),func_mounts非空时必选。

mount_share_path

String

远端挂载路径(例如192.168.0.12:/data),如果mount_type为ecs,必选。

local_mount_path

String

函数访问路径,func_mounts非空时必选。

表8 StrategyConfig

参数

参数类型

描述

concurrency

Integer

单函数最大实例数,v1取值0和-1,v2取值-1到1000 -1代表该函数实例数无限制 0代表该函数被禁用

concurrent_num

Integer

单实例并发数,v2版本才支持,取值1到1000

表9 Dependency

参数

参数类型

描述

id

String

依赖包版本ID。

owner

String

依赖包属主的domainId。

link

String

依赖包在OBS上的链接。

runtime

String

FunctionGraph函数的执行环境 Python2.7: Python语言2.7版本。 Python3.6: Pyton语言3.6版本。Python3.9: Python语言3.9版本。 Python3.10: Python语言3.10版本。Go1.8: Go语言1.8版本。Go1.x: Go语言1.x版本。Java8: Java语言8版本。Java11: Java语言11版本。Java17: Java语言17版本(当前仅支持华北-乌兰察布二零二)。Node.js6.10: Nodejs语言6.10版本。Node.js8.10: Nodejs语言8.10版本。Node.js10.16: Nodejs语言10.16版本。Node.js12.13: Nodejs语言12.13版本。Node.js14.18: Nodejs语言14.18版本。Node.js16.17: Nodejs语言16.17版本。Node.js18.15: Nodejs语言18.15版本。C#(.NET Core 2.0): C#语言2.0版本。C#(.NET Core 2.1): C#语言2.1版本。C#(.NET Core 3.1): C#语言3.1版本。 C#(.NET Core 6.0): C#语言6.0版本(当前仅支持华北-乌兰察布二零二)。Custom: 自定义运行时。PHP7.3: Php语言7.3版本。Cangjie1.0:仓颉语言1.0版本。http: HTTP函数。Custom Image: 自定义镜像函数。

枚举值:

  • Java8
  • Java11
  • Java17
  • Node.js6.10
  • Node.js8.10
  • Node.js10.16
  • Node.js12.13
  • Node.js14.18
  • Node.js16.17
  • Node.js18.15
  • Python2.7
  • Python3.6
  • Python3.10
  • Go1.8
  • Go1.x
  • C#(.NET Core 2.0)
  • C#(.NET Core 2.1)
  • C#(.NET Core 3.1)
  • C#(.NET Core 6.0)
  • Custom
  • PHP7.3
  • Python3.9
  • http
  • Custom Image
  • Cangjie1.0

etag

String

依赖包的md5值

size

Long

依赖包大小。

name

String

依赖包名称。

description

String

依赖包描述。

file_name

String

依赖包文件名,如果创建方式为zip时。

version

Long

依赖包版本编号。

dep_id

String

依赖包ID

last_modified

String

函数最后一次更新时间。

表10 CustomImage

参数

参数类型

描述

enabled

Boolean

是否启用

image

String

镜像地址

command

String

启动容器镜像的命令

args

String

启动容器镜像的命令行参数

working_dir

String

镜像容器工作目录

uid

String

镜像容器的用户id

gid

String

镜像容器的用户组id

表11 NetworkControlConfig

参数

参数类型

描述

disable_public_network

Boolean

禁止公网访问开关。

trigger_access_vpcs

Array of VpcConfig objects

指定触发函数vpc配置。

表12 VpcConfig

参数

参数类型

描述

vpc_name

String

vpc名称。

vpc_id

String

vpc ID。

状态码: 400

表13 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 401

表14 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 403

表15 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 404

表16 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

状态码: 500

表17 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误信息

请求示例

查询指定函数metadata。

GET https://{Endpoint}/v2/{project_id}/fgs/functions/{function_urn}/config

响应示例

状态码: 200

OK

{
  "func_id" : "0d075978-5a54-4ee1-8e24-ff5bd070xxxx",
  "resource_id" : "0d075978-5a54-4ee1-8e24-ff5bd070xxxx:test",
  "func_urn" : "urn:fss:xxxxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test:latest",
  "func_name" : "test",
  "domain_id" : "14ee2e3501124efcbca7998baa24xxxx",
  "namespace" : "46b6f338fc3445b8846c71dfb1fbxxxx",
  "project_name" : "xxxxxxxxx",
  "package" : "default",
  "runtime" : "Node.js6.10",
  "timeout" : 3,
  "handler" : "test.handler",
  "memory_size" : 128,
  "cpu" : 300,
  "code_type" : "inline",
  "code_filename" : "index.js",
  "code_size" : 272,
  "digest" : "faa825575c45437cddd4e369bea69893bcbe195d478178462ad90984fe72993f3f59d15f41c5373f807f3e05fb9af322c55dabeb16565c386e402413458e6068",
  "version" : "latest",
  "ephemeral_storage" : 512,
  "image_name" : "latest-191025153727@zehht",
  "last_modified" : "2019-10-25 15:37:27",
  "strategy_config" : {
    "concurrency" : 0
  }
}

状态码: 404

Not Found 找不到资源。

{
  "error_code" : "FSS.1051",
  "error_msg" : "Not found the function"
}

状态码

状态码

描述

200

OK

400

Bad Request 请求错误。

401

Unauthorized 鉴权失败。

403

Forbidden 没有操作权限。

404

Not Found 找不到资源。

500

Internal Server Error 服务内部错误。

错误码

请参见错误码