修改函数代码
功能介绍
修改指定的函数的代码。
URI
PUT /v2/{project_id}/fgs/functions/{function_urn}/code
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| project_id | 是 | String | 租户项目 ID,获取方式请参见获取项目ID。 | 
| function_urn | 是 | String | 函数的URN,详细解释见FunctionGraph函数模型的描述。 | 
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| X-Auth-Token | 是 | String | 用户Token。 通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 | 
| Content-Type | 是 | String | 消息体的类型(格式) | 
| 参数 | 是否必选 | 参数类型 | 描述 | 
|---|---|---|---|
| code_type | 是 | String | 函数代码类型,取值有5种。 inline: UI在线编辑代码。 zip: 函数代码为zip包。 obs: 函数代码来源于obs存储。 jar: 函数代码为jar包,主要针对Java函数。修改自定义镜像函数镜像配置请参考:修改自定义镜像类型函数的镜像配置。 枚举值: 
 | 
| code_url | 否 | String | 当code_type为obs时,该值为函数代码包在OBS上的地址,code_type为其他值时,该字段为空。 | 
| code_filename | 否 | String | 函数的文件名,当code_type为jar/zip时必须提供该字段,inline和obs不需要提供。 | 
| func_code | 是 | FuncCode object | 函数代码。 | 
| depend_version_list | 否 | Array of strings | 依赖版本id列表 | 
| code_encrypt_kms_key_id | 否 | String | 用于用户代码加密的kms主密钥ID。 | 
响应参数
状态码: 200
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| func_urn | String | 函数的URN(Uniform Resource Name),唯一标识函数。 | 
| func_name | String | 函数名称。 | 
| domain_id | String | 域名id。 | 
| runtime | String | FunctionGraph函数的执行环境 枚举值: 
 | 
| code_type | String | 函数代码类型,取值有5种。 inline: UI在线编辑代码。 zip: 函数代码为zip包。 obs: 函数代码来源于obs存储。 jar: 函数代码为jar包,主要针对Java函数。修改自定义镜像函数镜像配置请参考:修改自定义镜像类型函数的镜像配置。 枚举值: 
 | 
| code_url | String | 当code_type为obs时,该值为函数代码包在OBS上的地址,code_type为其他值时,该字段为空。 | 
| code_filename | String | 函数的文件名,当code_type为jar/zip时必须提供该字段,inline和obs不需要提供。 | 
| code_size | Long | 函数大小,单位:字节。 | 
| digest | String | 函数代码SHA512 hash值,用于判断函数是否变化。 | 
| last_modified | String | 函数最后一次更新时间。 | 
| func_code | FuncCode object | 函数代码。 | 
| depend_list | Array of strings | 依赖id列表 | 
| depend_version_list | Array of strings | 依赖版本id列表 | 
| strategy_config | StrategyConfig object | 函数策略配置。 | 
| dependencies | Array of Dependency objects | 函数依赖代码包列表。 | 
| code_encrypt_kms_key_id | String | 用于用户代码加密的kms主密钥ID。 | 
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| concurrency | Integer | 单函数最大实例数,v1取值0和-1,v2取值-1到1000 -1代表该函数实例数无限制 0代表该函数被禁用 | 
| concurrent_num | Integer | 单实例并发数,v2版本才支持,取值1到1000 | 
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| id | String | 依赖包版本ID。 | 
| owner | String | 依赖包属主的domainId。 | 
| link | String | 依赖包在OBS上的链接。 | 
| runtime | String | FunctionGraph函数的执行环境 枚举值: 
 | 
| etag | String | 依赖包的md5值 | 
| size | Long | 依赖包大小。 | 
| name | String | 依赖包名称。 | 
| description | String | 依赖包描述。 | 
| file_name | String | 依赖包文件名,如果创建方式为zip时。 | 
| version | Long | 依赖包版本编号。 | 
| dep_id | String | 依赖包ID | 
| last_modified | Integer | 函数最后一次更新时间。 | 
状态码: 400
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码 | 
| error_msg | String | 错误信息 | 
状态码: 401
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码 | 
| error_msg | String | 错误信息 | 
状态码: 403
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码 | 
| error_msg | String | 错误信息 | 
状态码: 404
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码 | 
| error_msg | String | 错误信息 | 
状态码: 500
| 参数 | 参数类型 | 描述 | 
|---|---|---|
| error_code | String | 错误码 | 
| error_msg | String | 错误信息 | 
请求示例
- 以inline方式修改指定函数代码。
    PUT https://{Endpoint}/v2/{project_id}/fgs/functions/{function_urn}/code { "code_filename" : "index.zip", "code_type" : "inline", "func_code" : { "file" : "UEsDBAoAAAAIAPQ1M1gNImPLrAAAAAEBAAAIAAAAaW5kZXgucHlNjtEOgjAMRd/5igVfxDAlxhjDo0S/wB+YrMgMdMvWGYnh390wEfrU3nvb0xXjG85qLRU+Sk8NP0UhUb3RltjTaUwkNKwVKDuwbA0vQMrDAhK8KSsTFsoCeYvsMw2xUkeCvKu0hLRk+6LIZ0u5s3BwPFwwUEEG/yo6B4vEXcshyBG+lb437kfNFpEWhATrQmqGTkYVH0Pit8FEdCqM6VQtSGncxYPpPz5O3fgFUEsBAh4DCgAAAAgA9DUzWA0iY8usAAAAAQEAAAgAAAAAAAAAAAAAAPMCAAAAAGluZGV4LnB5UEsFBgAAAAABAAEANgAAANIAAAAAAA==" } }
- 以zip方式修改指定函数代码。
    PUT https://{Endpoint}/v2/{project_id}/fgs/functions/{function_urn}/code { "code_filename" : "index.zip", "code_type" : "zip", "func_code" : { "file" : "UEsDBAoAAAAIAPQ1M1gNImPLrAAAAAEBAAAIAAAAaW5kZXgucHlNjtEOgjAMRd/5igVfxDAlxhjDo0S/wB+YrMgMdMvWGYnh390wEfrU3nvb0xXjG85qLRU+Sk8NP0UhUb3RltjTaUwkNKwVKDuwbA0vQMrDAhK8KSsTFsoCeYvsMw2xUkeCvKu0hLRk+6LIZ0u5s3BwPFwwUEEG/yo6B4vEXcshyBG+lb437kfNFpEWhATrQmqGTkYVH0Pit8FEdCqM6VQtSGncxYPpPz5O3fgFUEsBAh4DCgAAAAgA9DUzWA0iY8usAAAAAQEAAAgAAAAAAAAAAAAAAPMCAAAAAGluZGV4LnB5UEsFBgAAAAABAAEANgAAANIAAAAAAA==" } }
响应示例
状态码: 200
OK
{
  "func_urn" : "urn:fss:xxxxxxxxxxxx:7aad83af3e8d42e99ac194e8419e2c9b:function:default:test:latest",
  "func_name" : "test",
  "domain_id" : "14ee2e3501124efcbca7998baa24xxxx",
  "runtime" : "Node.js6.10",
  "code_type" : "inline",
  "code_filename" : "index.js",
  "code_size" : 245,
  "digest" : "39d51ae334ffb239037e194159f4cc9cec31086719aa73db7d0a608343121a290f7115693e008bd01cb12b99a803856e83aa96173b26c528c41cfed18267e08f",
  "last_modified" : "2019-10-31 11:37:58",
  "func_code" : {
    "file" : "aW1wb3J0IGpzb24KZGVmIGhhbmRsZXIoZXZlbnQsIGNvbnRleHQpOgogICAgb3V0cHV0ID0gJ0hlbGxvIE1zZyBmb3IgbW9kaWZ5OiAnICsganNvbi5kdW1wcyhldmVudCkKICAgIGFrID0gY29udGV4dC5nZXRBY2Nlc3NLZXkoKQogICAgc2sgPSBjb250ZXh0LmdldFNlY3JldEtleSgpCiAgICB0b2tlbiA9IGNvbnRleHQuZ2V0VG9rZW4oKQogICAgcHJpbnQgJ2FrOicgKyBhawogICAgcHJpbnQgJ3NrOicgKyBzawogICAgcHJpbnQgJ3Rva2VuOicgKyB0b2tlbgogICAgcmV0dXJuIG91dHB1dAo+C0NLTqLwKImNCTgBMSn5SC+UbkysuKp1Bj7JQqxds+5p7La/ew4RBTp8IusZ/k2qmqvCDdoBY0ywYCl+RgctnLbTS6hLLj9sNyKoVXiXb1BLAQIeAwoAAAAIAAhYOU8ssPQsgwAAALYAAAAIAAAAAAAAAAAAAADzAgAAAABpbmRleC5weVBLBQYAAAAAAQABADYAAACpAAAAAAA=",
    "link" : ""
  },
  "strategy_config" : {
    "concurrency" : -1
  }
}
  状态码: 404
Not Found 找不到资源。
{
  "error_code" : "FSS.1052",
  "error_msg" : "Not found the function version"
}
 状态码
| 状态码 | 描述 | 
|---|---|
| 200 | OK | 
| 400 | Bad Request 请求错误。 | 
| 401 | Unauthorized 鉴权失败。 | 
| 403 | Forbidden 没有操作权限。 | 
| 404 | Not Found 找不到资源。 | 
| 500 | Internal Server Error 服务内部错误。 | 
错误码
请参见错误码。
 
    