OpenFunction 是一个开源的云原生 FaaS(Function as a Service,函数即服务)平台,旨在帮助开发者专注于业务逻辑的研发。在过去的几个月里,OpenFunction 社区一直在努力工作,为 OpenFunction 1.1.0 版本的发布做准备。今天,我们非常高兴地宣布 OpenFunction 1.1.0 已经发布了!感谢社区各位小伙伴的贡献和反馈!

OpenFunction 1.1.0 版本带来了两个新的功能:新增 v1beta2 API,支持 Dapr 状态管理。此外,该版本还有多项强化及 bug 修复,使 OpenFunction 更加稳定和易用。

以下是本次版本更新的主要内容:

新增 v1beta2 API

在此版本中,我们新增了 v1beta2 API,原 v1beta1 API 已弃用,将来会被删除。v1beta2 中有不少重构,你可以在这个 proposal 中了解更多细节。

支持 Dapr 状态管理

之前,OpenFunction 支持 Dapr 发布/订阅和绑定构建块,状态管理也是有用的构建块之一,它对于具有状态的函数非常有用。使用状态存储组件,您可以构建具有持久状态的函数,这些函数可以保存和恢复它们的状态。

现在你可以在 Function CR 中定义状态存储,OpenFunction 将管理相应的 Dapr 组件。

你的函数可以使用简单封装的 Dapr 的状态管理 API 来保存、读取和查询定义的状态存储中的键/值对。

统一同步和异步函数的定义

之前,我们使用 runtime: knativeruntime: async 来区分同步和异步函数,这会增加学习曲线。实际上,同步和异步函数之间的区别在于触发类型:

  • 同步函数由 HTTP 事件触发,这可以通过指定 runtime: knative 来定义。
  • 异步函数由 Dapr 绑定组件或 Dapr 发布者事件触发。要指定异步函数的触发器,必须同时使用 runtime: asyncinputs

因此,我们可以使用 triggers 来替代 runtimeinputs

HTTP Trigger 通过 HTTP 请求触发一个函数。您可以这样定义一个 HTTP Trigger

apiVersion: core.openfunction.io/v1beta2
kind: Function
metadata:
name: function-sample
spec:
serving:
triggers:
http:
port: 8080
route:
rules:
- matches:
- path:
type: PathPrefix
value: /echo

Dapr Trigger 使用 Dapr bindingsDapr pubsub 的事件触发一个函数。你可以用 Dapr Trigger 定义一个函数:

apiVersion: core.openfunction.io/v1beta2
kind: Function
metadata:
name: logs-async-handler
namespace: default
spec:
serving:
bindings:
kafka-receiver:
metadata:
- name: brokers
value: kafka-server-kafka-brokers:9092
- name: authRequired
value: "false"
- name: publishTopic
value: logs
- name: topics
value: logs
- name: consumerGroup
value: logs-handler
type: bindings.kafka
version: v1
triggers:
dapr:
- name: kafka-receiver
type: bindings.kafka

其他改进和优化

  • 从网关状态中删除 lastTransitionTime 字段,以防止频繁触发 reconcile。
  • 允许在创建 Dapr 组件时设置作用域。
  • 使用 OpenFunction 策略时,支持设置缓存镜像以提高构建性能。
  • 支持设置 OpenFunction 构建策略的 bash 镜像。

以上就是 OpenFunction v1.1.0 的主要功能变化,在此十分感谢各位贡献者的参与和贡献。如果您正在寻找一款高效、灵活的云原生函数开发平台,那么 OpenFunction v1.1.0 绝对不容错过。

了解更多关于 OpenFunction 和本次版本更新的信息,欢迎访问我们的官方网站和 Github 页面。

本文由博客一文多发平台 OpenWrite 发布!

OpenFunction v1.1.0 发布:新增 v1beta2 API,支持 Dapr 状态管理的更多相关文章

  1. Kube-OVN v1.10.0:新增Windows节点支持,用户自定义子网ACL等10+硬核功能

    在Kube-OVN社区小伙伴的共同努力下,Kube-OVN v1.10.0于五月份正式发布.Kube-OVN v1.10.0版本中,我们一如既往地对Kube-OVN 的功能.性能.稳定性和易用性进行了 ...

  2. 第30月第11天 Xcode 9.0中新增的API版本检查@available

    1.Xcode 9.0中新增的API版本检查@available https://www.jianshu.com/p/0a94baa6c3dd https://www.jianshu.com/p/b8 ...

  3. RapidJSON v1.1.0 发布简介

    时隔 15.6 个月,终于发布了一个新版本 v1.1.0. 新版本除了包含了这些日子收集到的无数的小改进及 bug fixes,也有一些新功能.本文尝试从使用者的角度,简单介绍一下这些功能和沿由. P ...

  4. FineUIMvc v1.4.0 发布了(ASP.NET MVC控件库)!

    FineUIMvc v1.4.0 已经于 2017-06-30 发布,FineUIMvc 是基于 jQuery 的专业 ASP.NET MVC 控件库,是我们的新产品.由于和 FineUI(专业版)共 ...

  5. Jsonnet-PHP v1.3.0 发布,支持 PHP 7 使用 Jsonnet

    JsonNet-PHP 是 Google Jsonnet 对 PHP的支持扩展. pecl: http://pecl.php.net/package/jsonnet github: https://g ...

  6. CoreWCF 1.0.0 发布,微软正式支持WCF

    2022年4月28日,我们达到了一个重要的里程碑,并发布了CoreWCF的1.0.0版本.对Matt Connew (微软WCF团队成员)来说,这是5年前即 2017年1月开始的漫长旅程的结束.Mat ...

  7. MVC4.0 WebApi如何设置api支持namespace

    1.自定义HttpControllerSelector /// <summary> /// 设置api支持namespace /// </summary> public cla ...

  8. React 新 Context API 在前端状态管理的实践

    本文转载至:今日头条技术博客 众所周知,React的单向数据流模式导致状态只能一级一级的由父组件传递到子组件,在大中型应用中较为繁琐不好管理,通常我们需要使用Redux来帮助我们进行管理,然而随着Re ...

  9. Solon Java Framework v1.12.0 发布

    一个更现代感的 Java 应用开发框架:更快.更小.更自由.没有 Spring,没有 Servlet,没有 JavaEE:独立的轻量生态.主框架仅 0.1 MB. @Controller public ...

  10. Yearning v1.3.0 发布,Web 端 SQL 审核平台

    企业级MYSQL web端 SQL审核平台. Website 官网 www.yearning.io Feature 功能 数据库字典自动生成 SQL查询 查询工单 导出 自动补全,智能提示 查询语句审 ...

随机推荐

  1. AI实践者师生夏令营讲座视频:南京大学Lamda实验室(周志华 团队)讲座视频 —— 强化学习的局限性与展望

    视频地址: 周志华团队与Intel团队的讲座视频--强化学习的局限性与未来展望 视频链接地址: https://bizwebcast.smarket.com.cn/b975d6d9969a42cba9 ...

  2. FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo

    ​不管是传统互联网还是移动互联网,实时数据传输都是刚需,比如以QQ.微信为代表的即时通信工具,能够实时传输文本和图片.其中一对一的图文通信叫做私聊,多对多的图文通信叫做群聊. 除了常见的图文即时通信, ...

  3. AtCoder Beginner Contest 318

    AtCoder Beginner Contest 318 A - Full Moon (atcoder.jp) 以\(M\)为首项,\(P\)为公差,看\(1 \sim N\)里包含了多少项的个数 # ...

  4. nvic stm32g0

    STM32G0 32个可屏蔽中断通道 4个可编程优先等级(抢占等级:0~3) 低延时异常和中断处理 电源管理控制

  5. 折腾 Quickwit,Rust 编写的分布式搜索引擎(专为从对象存储中实现亚秒级搜索而设计)

    什么是 Quickwit? Quickwit 是首个能在云端存储上直接执行复杂的搜索与分析查询的引擎,并且具有亚秒级延迟.它借助 Rust 语言和分离计算与存储的架构设计,旨在实现资源高效利用.易于操 ...

  6. 使用 Portainer CE 管理 Docker

    此文档参考官方文档 Install Portainer CE with Docker on Linux 编写. 创建容器 docker volume create portainer_data 启动 ...

  7. Qemu - 介绍

    Ref: QEMU支持3种运行模式 -- 理解 https://www.minitool.com/partition-disk/qemu-for-windows.html

  8. Java 1.8 Stream流原理与用法总结

    一.接口设计 从Java1.8开始提出了Stream流的概念,侧重对于源数据计算能力的封装,并且支持序列与并行两种操作方式:依旧先看核心接口的设计: BaseStream:基础接口,声明了流管理的核心 ...

  9. 微前端实践MicroApp

    微前端实践 本文主要是关于microApp的实践过程记录 本文主要内容如下: 什么是MicroApp? MicroApp的父子通讯方式以及路由介绍 如何部署相关应用? 安装 npm i @micro- ...

  10. PageHeper

    PageHelper 是一个非常流行的 MyBatis 分页插件,主要用于简化分页查询的实现.使用 PageHelper 可以在执行数据库查询时,自动处理分页参数,从而避免手动编写繁琐的分页逻辑. 今 ...