自定义函数
功能简介
自定义函数为千帆 aPaaS 中表达式功能的高级扩展功能,允许用户自行编写函数执行逻辑,使其满足特定使用场景。
使用场景
用户设计的自定义函数可使用在“流程编排/表达式”节点中。
用户授权开通自定义函数功能
由于自定义函数为高级扩展功能,默认为不开通状态,需要用户手动开通该功能。该功能目前为免费功能,后续会根据实际使用量进行费用计算。
- 登录 千帆 aPaaS 设计态首页,单击【应用设置】,再单击“应用设置”页左侧导航栏中的【自定义函数】。
- 授权云函数服务操作云资源权限:
- 单击【自定义函数】。
- 此时系统首先判断用户是否授权“云函数服务操作 COS/CMQ/CLS/APIGE 等云资源权限”,如果用户未授权过该权限,则会弹出引导授权弹窗。如果用户曾授权过该权限则不会看到该弹窗提示。
- 单击【前往访问管理】,此时页面会跳转到访问管理页面。
- 单击【同意授权】即可完成“云函数服务操作 COS/CMQ/CLS/APIGE 等云资源权限”授权操作,此时会弹出二次身份验证弹窗,需要用户使用手机微信扫描二维码进行身份验证。
- 完成身份验证后,页面会自动跳转回千帆 aPaaS 产品页面。
- 授权千帆 aPaaS 访问云函数权限:
- 当用户完成授权1-1操作后,自定义函数页面会展示引导用户进行下一步授权内容,用户单击【前往访问管理】,页面会跳转到角色管理页面。
- 用户单击【同意授权】,即可完成全部授权过程,随后页面会自动跳转回千帆 aPaaS 产品页面。
函数列表
登录 千帆 aPaaS 设计态首页,单击【应用设置】,再单击“应用设置”页左侧导航栏中的【自定义函数】,用户完成授权后即可查看函数列表页面。
函数创建
- 登录 千帆 aPaaS 设计态首页,单击【应用设置】,再单击“应用设置”页左侧导航栏中的【自定义函数】进入自定义函数管理页。
- 单击【新建】。
- 在弹出的新建函数表单中填写表单信息,并单击【确定】提交后即可创建一个函数。
属性说明
属性 | 说明 |
---|---|
函数名称 | 必填属性,要求在同一个应用中不能重复 |
语言 | 必填属性,目前支持 Python3.6、Nodejs12.16 两种 |
函数描述 | 非必填属性,函数的说明信息 |
此时创建的函数为初始创建阶段,并不能在其他组件中直接使用,还需进行函数的参数设置及代码的编写。
函数基本信息修改
- 登录 千帆 aPaaS 设计态首页,单击【应用设置】,再单击“应用设置”页左侧导航栏中的【自定义函数】进入自定义函数管理页。
- 单击函数列表中的“函数名称”,进入函数基本信息页面。
- 单击右上角【编辑】,弹出编辑函数弹窗。
- 修改函数描述信息,并单击【确认】,完成函数基本信息修改。
函数基本信息修改目前仅支持对函数描述的修改。
函数代码管理
- 登录 千帆 aPaaS 设计态首页,单击【应用设置】,再单击“应用设置”页左侧导航栏中的【自定义函数】进入自定义函数管理页。
- 单击函数列表“操作"列,再单击【代码管理】进入函数代码页。函数代码页中,区域1为函数入参设置区域,区域2为函数返回值类型设置区域,区域3为编辑函数代码的在线 IDE。
- 设置函数参数:如需设置函数的请求参数,只要在区域1单击右上角的【编辑】即可弹出参数设置弹窗,依次设置所需参数信息即可,后续可对参数进行修改。
属性说明
属性 | 说明 |
---|---|
参数 | 必填属性,作为函数的输入变量,可以在自定义函数中直接使用 |
类型 | 必填属性,目前执行类型如下: |
说明 | 非必填属性,对于参数的解释说明 |
参数名称及类型请谨慎设置,参数类型会在函数调用方进行校验,参数名称会在函数代码内引用。
- 设置函数返回值类型,目前仅支持“object”类型。
- 编写函数内容。
函数代码开发说明参见 代码开发。
- 编写完函数内容后,键盘输入 Ctrl+S 保存代码,此时函数状态变更为“编辑中”。
- 在线 IDE 右上角的部署按钮,此时函数状态会变更为“部署成功”。
只有函数状态为部署成功的函数才可以被其他组件所使用。
函数删除
登录 千帆 aPaaS 设计态首页,单击【应用设置】,再单击“应用设置”页左侧导航栏中的【自定义函数】进入自定义函数管理页,在函数列表操作列单击【删除】。
代码开发
NodeJS
目前 NodeJS 支持版本为12.16。
函数形态
Node.js 函数形态一般如下所示:
module.main_handler = async (event, context) => {
console.log(event);
return { code:0 };
}
入参
Node.js 环境下的入参包括 event、context。
- event:使用此参数传递触发事件数据,也就是在函数参数设置中添加的参数都可以从该对象中取出。
- context:使用此参数向您的处理程序传递运行时信息。
返回
在函数内部可使用 return 关键字进行返回,可直接使用 return object 来返回一个对象或值。
依赖安装
- 开启自动安装依赖功能。
- 单击在线 IDE 右上角下拉箭头,再次单击【自动安装依赖:关闭】,此时该按钮会变为【自动安装依赖:打开】。
- 在工程根目录创建 package.json 文件。
- 在 package.json 中添加所需依赖项。
{
"dependencies": {
"lodash": "4.17.15"
}
}
- 单击【部署】,在线 IDE 会根据 package.json 自动安装依赖。
Python
目前 Python 支持版本为3.6。
函数形态
Python 函数形态一般如下所示:
import json
def main_handler(event, context):
print("Received event: " + json.dumps(event, indent = 2))
print("Received context: " + str(context))
return("Hello World")
入参
Python 环境下的入参包括 event 和 context,两者均为 Python dict 类型。
- event:使用此参数传递触发事件数据,也就是在函数参数设置中添加的参数都可以从该对象中取出。
- context:使用此参数向您的处理程序传递运行时信息。
返回
您的处理程序可以使用 return 来返回值,根据调用函数时的调用类型不同,返回值会有不同的处理方式。在 Python 环境下,您可以直接返回一个可序列化的对象。例如:返回一个 dict 对象:
def main_handler(event, context):
resp = {
"isBase64Encoded": false,
"statusCode": 200,
"headers": {"Content-Type":"text/html","Key":["value1","value2","value3"]},
"body": "<html><body><h1>Heading</h1><p>Paragraph.</p></body></html>"
}
return(resp)
依赖安装
Python 可以通过 pip3 包管理器进行依赖管理。
操作步骤
- 在 requirements.txt 中配置依赖信息。
- 通过在线 IDE 的终端进入代码目录,然后执行“pip install -r requirements.txt -t .”命令安装依赖包。通过使用“-t .”参数,可以指定依赖包安装在当前目录下。