華為云計(jì)算 云知識 修改函數(shù)的metadata信息UpdateFunctionConfig
修改函數(shù)的metadata信息UpdateFunctionConfig

 

功能介紹

修改指定的函數(shù)的metadata信息。

調(diào)試

您可以在API Explorer中調(diào)試該接口,支持自動認(rèn)證鑒權(quán)。API Explorer可以自動生成SDK代碼示例,并提供SDK代碼示例調(diào)試功能。

URI

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

表1 路徑參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

project_id

String

租戶項(xiàng)目 ID,獲取方式請參見獲取項(xiàng)目ID。

function_urn

String

函數(shù)的URN,詳細(xì)解釋見FunctionGraph函數(shù)模型的描述。

請求參數(shù)

表2 請求Body參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

func_name

String

函數(shù)名稱。

runtime

String

FunctionGraph函數(shù)的執(zhí)行環(huán)境 Python2.7: Python語言2.7版本。 Python3.6: Pyton語言3.6版本。 Python3.9: Python語言3.9版本。 Go1.8: Go語言1.8版本。 Go1.x: Go語言1.x版本。 Java8: Java語言8版本。 Java11: Java語言11版本。 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版本。 C#(.NET Core 2.0): C#語言2.0版本。 C#(.NET Core 2.1): C#語言2.1版本。 C#(.NET Core 3.1): C#語言3.1版本。 Custom: 自定義運(yùn)行時(shí)。 PHP7.3: Php語言7.3版本。 http: HTTP函數(shù)。

枚舉值:

  • Java8
  • Java11
  • Node.js6.10
  • Node.js8.10
  • Node.js10.16
  • Node.js12.13
  • Node.js14.18
  • Python2.7
  • Python3.6
  • Go1.8
  • Go1.x
  • C#(.NET Core 2.0)
  • C#(.NET Core 2.1)
  • C#(.NET Core 3.1)
  • Custom
  • PHP7.3
  • Python3.9
  • http

timeout

Integer

函數(shù)執(zhí)行超時(shí)時(shí)間,超時(shí)函數(shù)將被強(qiáng)行停止,范圍3~900秒,可以通過白名單配置延長到12小時(shí),具體可以咨詢?nèi)A為云 函數(shù)工作流 服務(wù)進(jìn)行配置

handler

String

函數(shù)執(zhí)行入口 規(guī)則:xx.xx,必須包含“. ” 舉例:對于node.js函數(shù):myfunction.handler,則表示函數(shù)的文件名為myfunction.js,執(zhí)行的入口函數(shù)名為handler。

memory_size

Integer

函數(shù)消耗的內(nèi)存。 單位M。 取值范圍為:128、256、512、768、1024、1280、1536、1792、2048、2560、3072、3584、4096。 最小值為128,最大值為4096。

gpu_memory

Integer

函數(shù)消耗的顯存,只支持自定義運(yùn)行時(shí)與自定義 鏡像 函數(shù)配置GPU。 單位MB。 取值范圍為:1024、2048、3072、4096、5120、6144、7168、8192、9216、10240、11264、12288、13312、14336、15360、16384。 最小值為1024,最大值為16384。

user_data

String

用戶自定義的name/value信息。 在函數(shù)中使用的參數(shù)。 舉例:如函數(shù)要訪問某個(gè)主機(jī),可以設(shè)置自定義參數(shù):Host={host_ip},最多定義20個(gè),總長度不超過4KB。

encrypted_user_data

String

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

xrole

String

函數(shù)使用的權(quán)限委托名稱,需要 IAM 支持,并在IAM界面創(chuàng)建委托,當(dāng)函數(shù)需要訪問其他服務(wù)時(shí),必須提供該字段。

app_xrole

String

函數(shù)app使用的權(quán)限委托名稱,需要IAM支持,并在IAM界面創(chuàng)建委托,當(dāng)函數(shù)需要訪問其他服務(wù)時(shí),必須提供該字段。

description

String

函數(shù)描述。

func_vpc

FuncVpc object

函數(shù)vpc配置。

mount_config

MountConfig object

函數(shù)掛載配置。

strategy_config

StrategyConfig object

函數(shù)策略配置。

custom_image

CustomImage object

用戶容器鏡像。

extend_config

String

函數(shù)擴(kuò)展配置。

initializer_handler

String

函數(shù)初始化入口,規(guī)則:xx.xx,必須包含“. ”。 舉例:對于node.js函數(shù):myfunction.initializer,則表示函數(shù)的文件名為myfunction.js,初始化的入口函數(shù)名為initializer。

initializer_timeout

Integer

初始化超時(shí)時(shí)間,超時(shí)函數(shù)將被強(qiáng)行停止,范圍1~300秒。

ephemeral_storage

Integer

臨時(shí)存儲大小, 默認(rèn)512M, 支持配置10G。

枚舉值:

  • 512
  • 10240

enterprise_project_id

String

企業(yè)項(xiàng)目ID,在企業(yè)用戶創(chuàng)建函數(shù)時(shí)必填。

log_config

FuncLogConfig object

函數(shù)綁定日志配置。

network_controller

NetworkControlConfig object

函數(shù)網(wǎng)絡(luò)配置。

is_stateful_function

Boolean

是否支持有狀態(tài),如果需要支持,需要固定傳參為true,v2版本支持

enable_dynamic_memory

Boolean

是否啟動動態(tài)內(nèi)存配置

enable_auth_in_header

Boolean

是否允許在請求頭中添加鑒權(quán)信息

domain_names

String

內(nèi)網(wǎng)域名配置。

restore_hook_handler

String

函數(shù)快照式冷啟動Restore Hook入口,僅支持Java,規(guī)則:xx.xx,必須包含“. ”。如:com.huawei.demo.Test.restoreHook

restore_hook_timeout

Integer

快照冷啟動Restore Hook的超時(shí)時(shí)間,超時(shí)函數(shù)將被強(qiáng)行停止,范圍1~300秒。

表3 FuncVpc

參數(shù)

是否必選

參數(shù)類型

描述

vpc_name

String

虛擬私有云 名稱。

vpc_id

String

虛擬 私有云 唯一標(biāo)識。

subnet_name

String

子網(wǎng)名稱。

subnet_id

String

子網(wǎng)編號。

cidr

String

子網(wǎng)掩碼。

gateway

String

網(wǎng)關(guān)。

security_groups

Array of strings

安全組

表4 MountConfig

參數(shù)

是否必選

參數(shù)類型

描述

mount_user

MountUser object

掛載用戶信息。

func_mounts

Array of FuncMount objects

函數(shù)掛載列表。

表5 MountUser

參數(shù)

是否必選

參數(shù)類型

描述

user_id

String

用戶ID(-1~65534的非0整數(shù))

user_group_id

String

用戶組ID(-1~65534的非0整數(shù))

表6 FuncMount

參數(shù)

是否必選

參數(shù)類型

描述

mount_type

String

掛載類型(sfs/sfsTurbo/ecs),func_mounts非空時(shí)必選。

mount_resource

String

掛載資源ID(對應(yīng)云服務(wù)ID),func_mounts非空時(shí)必選。

mount_share_path

String

遠(yuǎn)端掛載路徑(例如192.168.0.12:/data),如果mount_type為ecs,必選。

local_mount_path

String

函數(shù)訪問路徑,func_mounts非空時(shí)必選。

表7 StrategyConfig

參數(shù)

是否必選

參數(shù)類型

描述

concurrency

Integer

單函數(shù)最大實(shí)例數(shù),v1取值0和-1,v2取值-1到1000 -1代表該函數(shù)實(shí)例數(shù)無限制 0代表該函數(shù)被禁用

concurrent_num

Integer

單實(shí)例最大并發(fā)數(shù),v2版本才支持,取值-1到1000

表8 CustomImage

參數(shù)

是否必選

參數(shù)類型

描述

enabled

Boolean

是否啟用

image

String

鏡像地址

command

String

啟動容器鏡像的命令

args

String

啟動容器鏡像的命令行參數(shù)

working_dir

String

鏡像容器工作目錄

uid

String

鏡像容器的用戶id

gid

String

鏡像容器的用戶組id

表9 FuncLogConfig

參數(shù)

是否必選

參數(shù)類型

描述

group_name

String

函數(shù)綁定日志組名。

group_id

String

函數(shù)綁定日志組ID。

stream_name

String

函數(shù)綁定日志流名。

stream_id

String

函數(shù)綁定日志流ID。

表10 NetworkControlConfig

參數(shù)

是否必選

參數(shù)類型

描述

disable_public_network

Boolean

禁止公網(wǎng)訪問開關(guān)。

trigger_access_vpcs

Array of VpcConfig objects

指定觸發(fā)函數(shù)vpc配置。

表11 VpcConfig

參數(shù)

是否必選

參數(shù)類型

描述

vpc_name

String

vpc名稱。

vpc_id

String

vpc ID。

響應(yīng)參數(shù)

狀態(tài)碼: 200

表12 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

func_urn

String

函數(shù)的URN(Uniform Resource Name),唯一標(biāo)識函數(shù)。

func_name

String

函數(shù)名稱。

domain_id

String

域名id。

namespace

String

租戶的project id。

project_name

String

租戶的project name。

package

String

函數(shù)所屬的分組Package,用于用戶針對函數(shù)的自定義分組。

runtime

String

FunctionGraph函數(shù)的執(zhí)行環(huán)境 Python2.7: Python語言2.7版本。 Python3.6: Pyton語言3.6版本。 Python3.9: Python語言3.9版本。 Go1.8: Go語言1.8版本。 Go1.x: Go語言1.x版本。 Java8: Java語言8版本。 Java11: Java語言11版本。 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版本。 C#(.NET Core 2.0): C#語言2.0版本。 C#(.NET Core 2.1): C#語言2.1版本。 C#(.NET Core 3.1): C#語言3.1版本。 Custom: 自定義運(yùn)行時(shí)。 PHP7.3: Php語言7.3版本。 http: HTTP函數(shù)。

枚舉值:

  • Java8
  • Java11
  • Node.js6.10
  • Node.js8.10
  • Node.js10.16
  • Node.js12.13
  • Node.js14.18
  • Python2.7
  • Python3.6
  • Go1.8
  • Go1.x
  • C#(.NET Core 2.0)
  • C#(.NET Core 2.1)
  • C#(.NET Core 3.1)
  • Custom
  • PHP7.3
  • Python3.9
  • http

timeout

Integer

函數(shù)執(zhí)行超時(shí)時(shí)間,超時(shí)函數(shù)將被強(qiáng)行停止,范圍3~900秒,可以通過白名單配置延長到12小時(shí),具體可以咨詢?nèi)A為云函數(shù)工作流服務(wù)進(jìn)行配置

handler

String

函數(shù)執(zhí)行入口 規(guī)則:xx.xx,必須包含“. ” 舉例:對于node.js函數(shù):myfunction.handler,則表示函數(shù)的文件名為myfunction.js,執(zhí)行的入口函數(shù)名為handler。

memory_size

Integer

函數(shù)消耗的內(nèi)存。 單位M。 取值范圍為:128、256、512、768、1024、1280、1536、1792、2048、2560、3072、3584、4096。 最小值為128,最大值為4096。

gpu_memory

Integer

函數(shù)消耗的顯存,只支持自定義運(yùn)行時(shí)與自定義鏡像函數(shù)配置GPU。 單位MB。 取值范圍為:1024、2048、3072、4096、5120、6144、7168、8192、9216、10240、11264、12288、13312、14336、15360、16384。 最小值為1024,最大值為16384。

cpu

Integer

函數(shù)占用的cpu資源。 單位為millicore(1 core=1000 millicores)。 取值與MemorySize成比例,默認(rèn)是128M內(nèi)存占0.1個(gè)核(100 millicores)。 函數(shù)占用的CPU為基礎(chǔ)CPU:200 millicores,再加上內(nèi)存按比例占用的CPU,計(jì)算方法:內(nèi)存/128 *100 + 200。

code_type

String

函數(shù)代碼類型,取值有4種。 inline: UI在線編輯代碼。 zip: 函數(shù)代碼為zip包。 obs: 函數(shù)代碼來源于obs存儲。 jar: 函數(shù)代碼為jar包,主要針對Java函數(shù)。

枚舉值:

  • inline
  • zip
  • obs
  • jar

code_url

String

當(dāng)CodeType為obs時(shí),該值為函數(shù)代碼包在OBS上的地址,CodeType為其他值時(shí),該字段為空。

code_filename

String

函數(shù)的文件名,當(dāng)CodeType為jar/zip時(shí)必須提供該字段,inline和obs不需要提供。

code_size

Long

函數(shù)大小,單位:字節(jié)。

user_data

String

用戶自定義的name/value信息。 在函數(shù)中使用的參數(shù)。 舉例:如函數(shù)要訪問某個(gè)主機(jī),可以設(shè)置自定義參數(shù):Host={host_ip},最多定義20個(gè),總長度不超過4KB。

encrypted_user_data

String

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

digest

String

函數(shù)代碼SHA512 hash值,用于判斷函數(shù)是否變化。

version

String

函數(shù)版本號,由系統(tǒng)自動生成,規(guī)則:vYYYYMMDD-HHMMSS(v+年月日-時(shí)分秒)。

image_name

String

函數(shù)版本的內(nèi)部標(biāo)識。

xrole

String

函數(shù)使用的權(quán)限委托名稱,需要IAM支持,并在IAM界面創(chuàng)建委托,當(dāng)函數(shù)需要訪問其他服務(wù)時(shí),必須提供該字段。

app_xrole

String

函數(shù)app使用的權(quán)限委托名稱,需要IAM支持,并在IAM界面創(chuàng)建委托,當(dāng)函數(shù)需要訪問其他服務(wù)時(shí),必須提供該字段。

description

String

函數(shù)描述。

last_modified

String

函數(shù)最后一次更新時(shí)間。

ephemeral_storage

Integer

臨時(shí)存儲大小。

枚舉值:

  • 512
  • 10240

func_vpc

FuncVpc object

函數(shù)vpc配置。

mount_config

MountConfig object

函數(shù)掛載配置。

strategy_config

StrategyConfig object

函數(shù)策略配置。

dependencies

Array of Dependency objects

函數(shù)依賴代碼包列表。

initializer_handler

String

函數(shù)初始化入口,規(guī)則:xx.xx,必須包含“. ”。 舉例:對于node.js函數(shù):myfunction.initializer,則表示函數(shù)的文件名為myfunction.js,初始化的入口函數(shù)名為initializer。

initializer_timeout

Integer

初始化超時(shí)時(shí)間,超時(shí)函數(shù)將被強(qiáng)行停止,范圍1~300秒。

enterprise_project_id

String

企業(yè)項(xiàng)目ID,在企業(yè)用戶創(chuàng)建函數(shù)時(shí)必填。

long_time

Boolean

是否允許進(jìn)行長時(shí)間超時(shí)設(shè)置。

log_group_id

String

自定義日志查詢組id

log_stream_id

String

自定義日志查詢流id

type

String

v2表示為公測版本,v1為原來版本。

枚舉值:

  • v1
  • v2

enable_dynamic_memory

Boolean

是否啟動動態(tài)內(nèi)存配置

is_stateful_function

Boolean

是否支持有狀態(tài),如果需要支持,需要固定傳參為true,v2版本支持

domain_names

String

函數(shù)配置的需要支持 域名解析 的內(nèi)網(wǎng)域名。

enable_auth_in_header

Boolean

是否允許在請求頭中添加鑒權(quán)信息

custom_image

CustomImage object

用戶容器鏡像。

表13 FuncVpc

參數(shù)

參數(shù)類型

描述

vpc_name

String

虛擬私有云名稱。

vpc_id

String

虛擬私有云唯一標(biāo)識。

subnet_name

String

子網(wǎng)名稱。

subnet_id

String

子網(wǎng)編號。

cidr

String

子網(wǎng)掩碼。

gateway

String

網(wǎng)關(guān)。

security_groups

Array of strings

安全組

表14 MountConfig

參數(shù)

參數(shù)類型

描述

mount_user

MountUser object

掛載用戶信息。

func_mounts

Array of FuncMount objects

函數(shù)掛載列表。

表15 MountUser

參數(shù)

參數(shù)類型

描述

user_id

String

用戶ID(-1~65534的非0整數(shù))

user_group_id

String

用戶組ID(-1~65534的非0整數(shù))

表16 FuncMount

參數(shù)

參數(shù)類型

描述

mount_type

String

掛載類型(sfs/sfsTurbo/ecs),func_mounts非空時(shí)必選。

mount_resource

String

掛載資源ID(對應(yīng)云服務(wù)ID),func_mounts非空時(shí)必選。

mount_share_path

String

遠(yuǎn)端掛載路徑(例如192.168.0.12:/data),如果mount_type為ecs,必選。

local_mount_path

String

函數(shù)訪問路徑,func_mounts非空時(shí)必選。

表17 StrategyConfig

參數(shù)

參數(shù)類型

描述

concurrency

Integer

單函數(shù)最大實(shí)例數(shù),v1取值0和-1,v2取值-1到1000 -1代表該函數(shù)實(shí)例數(shù)無限制 0代表該函數(shù)被禁用

concurrent_num

Integer

單實(shí)例最大并發(fā)數(shù),v2版本才支持,取值-1到1000

表18 Dependency

參數(shù)

參數(shù)類型

描述

owner

String

依賴包屬主的domainId。

link

String

依賴包在OBS上的鏈接。

runtime

String

FunctionGraph函數(shù)的執(zhí)行環(huán)境 Python2.7: Python語言2.7版本。 Python3.6: Pyton語言3.6版本。 Python3.9: Python語言3.9版本。 Go1.8: Go語言1.8版本。 Go1.x: Go語言1.x版本。 Java8: Java語言8版本。 Java11: Java語言11版本。 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版本。 C#(.NET Core 2.0): C#語言2.0版本。 C#(.NET Core 2.1): C#語言2.1版本。 C#(.NET Core 3.1): C#語言3.1版本。 Custom: 自定義運(yùn)行時(shí)。 PHP7.3: Php語言7.3版本。 http: HTTP函數(shù)。

枚舉值:

  • Java8
  • Java11
  • Node.js6.10
  • Node.js8.10
  • Node.js10.16
  • Node.js12.13
  • Node.js14.18
  • Python2.7
  • Python3.6
  • Go1.8
  • Go1.x
  • C#(.NET Core 2.0)
  • C#(.NET Core 2.1)
  • C#(.NET Core 3.1)
  • Custom
  • PHP7.3
  • Python3.9
  • http

etag

String

依賴包的md5值

size

Long

依賴包大小。

name

String

依賴包名稱。

description

String

依賴包描述。

file_name

String

依賴包文件名,如果創(chuàng)建方式為zip時(shí)。

表19 CustomImage

參數(shù)

參數(shù)類型

描述

enabled

Boolean

是否啟用

image

String

鏡像地址

command

String

啟動容器鏡像的命令

args

String

啟動容器鏡像的命令行參數(shù)

working_dir

String

鏡像容器工作目錄

uid

String

鏡像容器的用戶id

gid

String

鏡像容器的用戶組id

狀態(tài)碼: 400

表20 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

狀態(tài)碼: 401

表21 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

狀態(tài)碼: 403

表22 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

狀態(tài)碼: 404

表23 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

狀態(tài)碼: 500

表24 響應(yīng)Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

請求示例

  • 修改名為fgsTest的Nodejs函數(shù)配置信息,將內(nèi)存大小改為768MB,超時(shí)時(shí)間設(shè)為40s。
    PUT https://{Endpoint}/v2/{project_id}/fgs/functions/{function_urn}/config
    
    {
      "func_name" : "fgsTest",
      "handler" : "index.handler",
      "memory_size" : 768,
      "runtime" : "Node.js6.10",
      "timeout" : 40
    }
  • 修改自定義運(yùn)行時(shí)函數(shù)GPU配置,將GPU顯存設(shè)置為1GB,內(nèi)存大小設(shè)置為4GB。
    PUT https://{Endpoint}/v2/{project_id}/fgs/functions/{function_urn}/config
    
    {
      "func_name" : "test_GPU",
      "handler" : "bootstrap",
      "memory_size" : 4096,
      "runtime" : "Custom",
      "timeout" : 40,
      "gpu_memory" : 1024
    }

響應(yīng)示例

狀態(tài)碼: 200

OK

{
  "func_urn" : "urn:fss:xxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test",
  "func_name" : "test",
  "domain_id" : "14ee2e3501124efcbca7998baa24xxxx",
  "namespace" : "46b6f338fc3445b8846c71dfb1fbxxxx",
  "project_name" : "xxxxxx",
  "package" : "default",
  "runtime" : "Node.js6.10",
  "timeout" : 3,
  "handler" : "fssExampleCsharp2.1::fssExampleCsharp21.Program::MyFunc",
  "memory_size" : 128,
  "cpu" : 300,
  "code_type" : "inline",
  "code_filename" : "index.js",
  "code_size" : 272,
  "digest" : "",
  "version" : "latest",
  "ephemeral_storage" : 512,
  "image_name" : "latest-191025153727@zehht",
  "last_modified" : "2019-10-25 15:37:27",
  "strategy_config" : {
    "concurrency" : 0
  }
}

狀態(tài)碼

狀態(tài)碼

描述

200

OK

400

Bad Request 請求錯誤。

401

Unauthorized 鑒權(quán)失敗。

403

Forbidden 沒有操作權(quán)限。

404

Not Found 找不到資源。

500

Internal Server Error 服務(wù)內(nèi)部錯誤。

錯誤碼

請參見錯誤碼。