函数签名
不同函数签名的比较
OpenFunction中有三种函数签名:HTTP,CloudEvent和OpenFunction。让我们使用Go函数为例,详细解释一下。
HTTP和CloudEvent签名可以用来创建同步函数,而OpenFunction签名可以用来创建同步和异步函数。
此外,OpenFunction签名可以利用各种Dapr构建块,包括Bindings,Pub/sub等访问各种BaaS服务,帮助创建更强大的函数。(Dapr状态管理,配置将很快得到支持)
| HTTP | CloudEvent | OpenFunction | |
|---|---|---|---|
| 签名 | func(http.ResponseWriter, *http.Request) error | func(context.Context, cloudevents.Event) error | func(ofctx.Context, []byte) (ofctx.Out, error) |
| 同步函数 | 支持 | 支持 | 支持 |
| 异步函数 | 不支持 | 不支持 | 支持 |
| Dapr Binding | 不支持 | 不支持 | 支持 |
| Dapr Pub/sub | 不支持 | 不支持 | 支持 |
示例
如您所见,OpenFunction签名是推荐的函数签名,我们正在努力在更多语言运行时支持此函数签名。
| HTTP | CloudEvent | OpenFunction | |
|---|---|---|---|
| Go | Hello World, 多函数, 带路径参数的同步函数, 日志处理 | 带路径参数的同步函数 | 带路径参数的同步函数, 带输出绑定的同步函数, Kafka输入 & HTTP输出绑定, Cron输入 & Kafka输出绑定, Cron输入绑定, Kafka输入绑定, Kafka pubsub |
| Nodejs | Hello World | 带输出绑定的同步函数, MQTT绑定 & pubsub | |
| Python | Hello World | ||
| Java | Hello World | CloudEvent | 带输出的同步函数, Cron输入 & Kafka输出绑定, Kafka pubsub |
| DotNet | Hello World |
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.