函数签名
不同函数签名的比较
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.