華為云計算 云知識 發(fā)布函數(shù)版本CreateFunctionVersion
發(fā)布函數(shù)版本CreateFunctionVersion

 

功能介紹

發(fā)布函數(shù)版本。

調試

您可以在API Explorer中調試該接口,支持自動認證鑒權。API Explorer可以自動生成SDK代碼示例,并提供SDK代碼示例調試功能。

URI

POST /v2/{project_id}/fgs/functions/{function_urn}/versions

表1 路徑參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

project_id

String

租戶項目 ID,獲取方式請參見獲取項目ID。

function_urn

String

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

請求參數(shù)

表2 請求Header參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

X-Auth-Token

String

用戶Token。

通過調用 IAM 服務獲取用戶Token接口獲取(響應消息頭中X-Subject-Token的值)。

表3 請求Body參數(shù)

參數(shù)

是否必選

參數(shù)類型

描述

digest

String

md5鍵值

version

String

發(fā)布版本名稱

description

String

發(fā)布版本描述

響應參數(shù)

狀態(tài)碼: 200

表4 響應Body參數(shù)

參數(shù)

參數(shù)類型

描述

func_urn

String

函數(shù)的URN(Uniform Resource Name),唯一標識函數(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: 自定義運行時。 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ù)將被強行停止,范圍3~900秒,可以通過白名單配置延長到12小時,具體可以咨詢華為云 函數(shù)工作流 服務進行配置

handler

String

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

memory_size

Integer

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

cpu

Integer

函數(shù)占用的cpu資源。 單位為millicore(1 core=1000 millicores)。 取值與MemorySize成比例,默認是128M內存占0.1個核(100 millicores)。 函數(shù)占用的CPU為基礎CPU:200 millicores,再加上內存按比例占用的CPU,計算方法:內存/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

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

code_filename

String

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

code_size

Long

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

user_data

String

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

encrypted_user_data

String

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

digest

String

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

version

String

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

image_name

String

函數(shù)版本的內部標識。

xrole

String

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

app_xrole

String

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

description

String

函數(shù)描述。

version_description

String

函數(shù)版本描述。

last_modified

String

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

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ù)將被強行停止,范圍1~300秒。

enterprise_project_id

String

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

long_time

Boolean

是否允許進行長時間超時設置。

log_group_id

String

自定義日志查詢組id

log_stream_id

String

自定義日志查詢流id

type

String

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

枚舉值:

  • v1

  • v2

enable_dynamic_memory

Boolean

是否允許動態(tài)內存配置

function_async_config

FunctionAsyncConfig object

函數(shù)異步配置返回結構體。

表5 FuncVpc

參數(shù)

參數(shù)類型

描述

vpc_name

String

虛擬私有云 名稱。

vpc_id

String

虛擬 私有云 唯一標識。

subnet_name

String

子網(wǎng)名稱。

subnet_id

String

子網(wǎng)編號。

cidr

String

子網(wǎng)掩碼。

gateway

String

網(wǎng)關。

security_groups

Array of strings

安全組

表6 MountConfig

參數(shù)

參數(shù)類型

描述

mount_user

MountUser object

掛載用戶信息。

func_mounts

Array of FuncMount objects

函數(shù)掛載列表。

表7 MountUser

參數(shù)

參數(shù)類型

描述

user_id

String

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

user_group_id

String

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

表8 FuncMount

參數(shù)

參數(shù)類型

描述

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

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

表9 StrategyConfig

參數(shù)

參數(shù)類型

描述

concurrency

Integer

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

concurrent_num

Integer

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

表10 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: 自定義運行時。 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時。

表11 FunctionAsyncConfig

參數(shù)

參數(shù)類型

描述

max_async_event_age_in_seconds

Integer

消息最大存活時長,取值范圍[60,86400]。單位:秒。

max_async_retry_attempts

Integer

異步調用失敗后的最大重試次數(shù),默認值為3。取值范圍[0,8]。

destination_config

FuncAsyncDestinationConfig object

異步調用目標。

created_time

String

異步調用配置的創(chuàng)建時間。

last_modified

String

異步調用配置的最后更改時間。

表12 FuncAsyncDestinationConfig

參數(shù)

參數(shù)類型

描述

on_success

FuncDestinationConfig object

當函數(shù)執(zhí)行成功時,函數(shù)計算將調用該配置對應的目標。

on_failure

FuncDestinationConfig object

當函數(shù)執(zhí)行失?。ㄏ到y(tǒng)錯誤或函數(shù)內部錯誤)時,函數(shù)計算將調用該配置對應的目標。

表13 FuncDestinationConfig

參數(shù)

參數(shù)類型

描述

destination

String

目標類型。

  • OBS:通知到OBS服務。

  • SMN :通知到SMN服務。

  • DIS:通知到DIS服務。

  • FunctionGraph: 通知到函數(shù)服務。

枚舉值:

  • OBS

  • SMN

  • DIS

  • FunctionGraph

param

String

通知目標服務對應參數(shù),json字符串。

  • OBS:包含bucket桶,對象目錄前綴prefix,對象默認expires過期時間[0~365]天,0默認不過期。

  • SMN:包含smn 主題topic_urn。

  • DIS:包含DIS 通道名stream_name。

  • FunctionGraph:包含func_urn,函數(shù)urn

狀態(tài)碼: 400

表14 響應Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

狀態(tài)碼: 401

表15 響應Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

狀態(tài)碼: 403

表16 響應Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

狀態(tài)碼: 404

表17 響應Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

狀態(tài)碼: 500

表18 響應Body參數(shù)

參數(shù)

參數(shù)類型

描述

error_code

String

錯誤碼

error_msg

String

錯誤信息

請求示例

發(fā)布函數(shù)版本。

POST https://{Endpoint}/v2/{project_id}/fgs/functions/{function_urn}/versions

{
  "version" : "v1",
  "description" : "v1"
}

響應示例

狀態(tài)碼: 200

OK

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

狀態(tài)碼: 404

Not Found 找不到資源。

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

狀態(tài)碼

狀態(tài)碼

描述

200

OK

400

Bad Request 請求錯誤。

401

Unauthorized 鑒權失敗。

403

Forbidden 沒有操作權限。

404

Not Found 找不到資源。

500

Internal Server Error 服務內部錯誤。

錯誤碼

請參見錯誤碼。