1. 微函数

在低代码平台中微函数是执行特定计算任务的代码,你可以有一个函数读取你的销售数据和计算销售税,或一个函数收集数据和生成一个格式化的PDF报告文件。

本协议约定在低代码平台编写微函数的规范,包括函数参数,返回值等规则。

示例

export default async function (event, context, logger) {
  logger.info(
    `Invoking myfunction with payload ${JSON.stringify(event.data || {})}`
  );

  const results = await context.org.dataApi.query("SELECT Id, Name FROM Account");
  logger.info(JSON.stringify(results));
  return results;
}

支持从第三方包 import,比如:

import { getCurrentData } from "yahoo-stock-prices";

export default async function (event, context, logger) {
  logger.info("I'm logging stuff!");
  return getCurrentData("CRM");
};

函数定义

Ƭ Function<A, B>: (event: InvocationEvent<A>, context: Context, logger: Logger) => Promise<B> | B

微函数定义及其参数规范。

类型参数

名称
A
B

函数参数

所有函数的参数规则统一,以下是参数清单。

名称类型
eventInvocationEvent<A>
contextContext
loggerLogger

参数类型

以下是微函数中传入的各种参数类型规范。

InvocationEvent

代表与事件发生相关的数据,并支持关于事件发生源的元数据,有以下属性规范。

data: object

随函数传入的事件 payload

dataContentType: string

事件 payloadmedia type

dataSchema: string

事件 payload 遵循的 schema

id: string

标识事件发生的唯一标识符。

source: string

标识事件发生的上下文的URI。

time: string

事件发生时的时间戳,默认为当前时间。

type: string

事件类型。

Context

表示微函数执行环境中的上下文参数,有以下属性规范。

id: string

函数执行的唯一标识符。

org: Org

调用函数时所属的公司信息,其规范见 Org

Org

调用微函数时的组织和用户的信息,有以下属性规范。

broker

微服务Broker,用于调用微服务 Actions

apiVersion: string

当前公司所使用的api版本号。

baseUrl: string

当前公司的 base URL。

dataApi: DataApi

供客户端调用的数据请求接口,其规范见 DataApi

domainUrl: string

当前公司所属的域名地址。

id: string

当前公司唯一标识符。

user: User

当前登录用户信息,其规范见 User

User

调用微函数时的组织和用户的信息,有以下属性规范。

id: string

用户的ID。

onBehalfOfUserId: string

用户所代表的用户id。

username: string

用户的用户名。

Logger

输出不同级别的日志消息功能。

debug

▸ debug(message: string): void

输出“调试”级别日志消息。

error

▸ error(message: string): void

输出“错误”级别日志消息。

info

▸ info(message: string): void

输出“信息”级别日志消息。

trace

▸ trace(message: string): void

输出“跟踪”级别日志消息。

warn

▸ warn(message: string): void

输出“警告”级别日志消息。

参考资料