函数签名

不同函数签名的比较

OpenFunction中有三种函数签名:HTTPCloudEventOpenFunction。让我们使用Go函数为例,详细解释一下。

HTTPCloudEvent签名可以用来创建同步函数,而OpenFunction签名可以用来创建同步和异步函数。

此外,OpenFunction签名可以利用各种Dapr构建块,包括Bindings,Pub/sub等访问各种BaaS服务,帮助创建更强大的函数。(Dapr状态管理,配置将很快得到支持)

HTTPCloudEventOpenFunction
签名func(http.ResponseWriter, *http.Request) errorfunc(context.Context, cloudevents.Event) errorfunc(ofctx.Context, []byte) (ofctx.Out, error)
同步函数支持支持支持
异步函数不支持不支持支持
Dapr Binding不支持不支持支持
Dapr Pub/sub不支持不支持支持

示例

如您所见,OpenFunction签名是推荐的函数签名,我们正在努力在更多语言运行时支持此函数签名。

HTTPCloudEventOpenFunction
GoHello World, 多函数, 带路径参数的同步函数, 日志处理带路径参数的同步函数带路径参数的同步函数, 带输出绑定的同步函数, Kafka输入 & HTTP输出绑定, Cron输入 & Kafka输出绑定, Cron输入绑定, Kafka输入绑定, Kafka pubsub
NodejsHello World带输出绑定的同步函数, MQTT绑定 & pubsub
PythonHello World
JavaHello WorldCloudEvent带输出的同步函数, Cron输入 & Kafka输出绑定, Kafka pubsub
DotNetHello World