更新时间:2022-02-22 GMT+08:00

修改函数代码

功能介绍

修改指定的函数的代码。

URI

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

URI参数说明如表1所示。

表1 URI参数说明

参数

类型

必选

说明

project_id

String

必选

Project ID。

function_urn

String

必选

函数的URN,请参考表1

请求消息

请求参数说明如表2所示。

表2 请求参数说明

参数

类型

必选

说明

code_type

String

必选

函数代码类型,请参考表1

code_url

String

可选

函数代码包在OBS上的地址。

当“code_type”为“obs”时,该字段必选。

func_code.file

String

可选

函数代码内容。

  • 当“code_type”为“inline”、“zip”或“jar”时,必选,且代码必须要进行base64编码。
  • 当“code_type”为“obs”时,可选。

depend_list

[]*String

可选

函数代码依赖包。

code_filename

String

可选

函数文件名,前面为文件名,后面为文件类型

响应消息

响应参数说明如表3所示。
表3 响应参数说明

名称

参数类型

说明

func_urn

String

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

func_name

String

函数名称。

domain_id

String

域名id。

runtime

String

FunctionGraph函数的执行环境,支持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、C#.NET Core 2.0、C#.NET Core 2.1、C#.NET Core 3.1和PHP 7.3。

concurrency

Int

  • 0:函数被禁用。
  • -1:函数被启用。

code_type

String

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

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

code_url

String

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

code_filename

String

函数的文件名。

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

code_size

String

函数大小,单位:字节。

func_code

String

函数代码,请参考表4

digest

String

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

last_modified

String

函数最后一次更新时间。

depend_list

[]String

依赖包列表。

strategy_config

String

函数策略配置,请参考表5

dependencies

[]dependency

依赖代码包。

func_vpc

func_vpc

VPC配置,请参考表6

表4 func_code参数说明

参数

类型

说明

file

String

函数代码内容(已废弃)。

link

String

函数代码链接(可通过OBS SDK下载)。

表5 strategy_config参数说明

参数

类型

必选

说明

concurrency

Int

必选

  • 0:函数被禁用。
  • -1:函数被启用。

示例

请求示例

PUT /v2/7aad83af3e8d42e99ac194e8419e2c9b/fgs/functions/urn:fss:xxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test:latest/code HTTP/1.1 
{ 
  "code_type": "inline", 
  "func_code": { 
    "file": "aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIoZXZlbnQsIGNvbnRleHQpOgogICAgb3V0cHV0ID0gJ0hlbGxvIE1zZyBmb3IgbW9kaWZ5OiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIGFrID0gY29udGV4dC5nZXRBY2Nlc3NLZXkoKQogICAgc2sgPSBjb250ZXh0LmdldFNlY3JldEtleSgpCiAgICB0b2tlbiA9IGNvbnRleHQuZ2V0VG9rZW4oKQogICAgcHJpbnQgJ2FrOicgKyBhawogICAgcHJpbnQgJ3NrOicgKyBzawogICAgcHJpbnQgJ3Rva2VuOicgKyB0b2tlbgogICAgcmV0dXJuIG91dHB1dAo=", 
  },
  "strategy_config": {
   "concurrency": -1
  },
}

响应示例

成功时的返回格式:

HTTP/1.1 200 OK
{
  "code_filename": "index.js", 
  "code_size": 273, 
  "code_type": "inline", 
  "code_url": "", 
  "digest": "af40294713c964d24f52fd567022cb7e03373b8acfafc2526bacde08a864e21dd214ad4fe567cd8a6541822ee76171ca802da6e7d135c07689a6072930e09824", 
  "func_code": { 
    "file": "",
   "link": "https://functionstorage-hk06.obs.xx-xxx.xxxxxxxxcloud.com/xxx/d2b0xxxf6e65/default/test143/latest/index.zip"
  }, 
  "func_name": "test", 
  "func_urn": "urn:fss:xxxxxxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test:latest", 
  "last_modified": "2018-02-26T11:55:41+08:00", 
  "runtime": "Node.js6.10",
  "concurrency": 0,
  "depend_list": [],
  "strategy_config": {
      "concurrency": -1
  },
  "dependencies": [],
  "func_vpc": null
}

失败时的返回格式:

HTTP/1.1 404 Not Found 
{ 
  "error_code": "FSS.1052", 
  "error_msg": "Not found the function version" 
 }

状态码

状态码请参见状态码