用途:Custom Function 是一种 Function 类型,用于以 Java 11、Python 3.12、Node.js 20 等高级语言(HLL)代码扩展 LaunchPad 能力,通常用于无法通过其他规则类型(如 Automation)实现的功能。
主要能力:上传 HLL 产物(Jar、Python 文件等),并引用被调用时要执行的方法;Custom Function 与 Function 一样无副作用,不应假定请求之间存在共享状态,每次调用执行任务或计算的方式一致。
使用方式:1)用受支持的高级语言编写代码;2)将 Java 打成 JAR、Python 与 Node.js 打成 ZIP,即 Code Bundle;3)创建 Function Rule,并指定其使用 Code Bundle;4)上传 Code Bundle;5)定义 Custom Function 的输入参数与输出,必须与 Code Bundle 中定义的方法签名匹配。
输入与限制:输入类型必须与 LaunchPad 类型兼容,否则可能无法访问输入相关数据;HLL 方法中定义的参数顺序必须与 Custom Function 一致,返回类型也必须兼容;使用对象作为输入时,LaunchPad Field 需要特殊处理。时区方面,Date Functions 默认使用 GMT,特定时区可使用 TodayWithTimeZone。Custom Function 受 AWS Lambda 执行限制约束。
最佳实践:优先使用内置 Functions;用多种输入值测试;充分编写文档。示例用途包括解析上传的 Excel 文件并提取到用户定义的数据结构、高级日期操作、复杂数学计算、集成外部库、专门的数据转换。