
OpenFaaS® 让开发者能够轻松地将事件驱动函数和微服务部署到 Kubernetes,而无需编写重复的样板代码。将您的代码或现有二进制文件打包到 OCI 兼容的镜像中,即可获得具有自动扩缩容和指标监控的高可扩展端点。
核心亮点
想深入了解 OpenFaaS?
此仓库是 OpenFaaS 社区版 (CE) 的一部分,该版本授权给个人用于非商业用途,以及用于商业概念验证 (PoC) 的限时试用。公司或企业内部的任何使用都需要许可证。
OpenFaaS CE:
* 有使用限制,您可以在 OpenFaaS CE EULA 中了解详情。
* 与商业版本相比,功能和能力较为基础或原始。
* 在初始试用期后,不允许用于任何类型的商业用途。
OpenFaaS Standard 和 OpenFaaS for Enterprises 是完整且独立的商业产品。
它们由一个全职团队独立维护和开发,提供商业支持、针对 CVE 的主动维护,以及 Kubernetes 和云原生生态系统的更新。
在 https://www.openfaas.com/pricing/ 了解更多关于各版本的信息。

概念架构与堆栈,文档中有更多细节
您可以使用 faas-cli new 命令来搭建一个新函数,传入函数名称和您想要使用的语言模板,例如 faas-cli new --lang node20 stripe-webhooks。
官方为许多流行语言提供了模板,并且可以轻松使用 Dockerfile 进行扩展。
在文档中了解 OpenFaaS 模板
Node.js (node20) 示例:
```js
"use strict"
module.exports = async (event, context) => {
return context
.status(200)
.headers({"Content-Type": "text/html"})
.succeed(<h1>
👋 Hello World 🌍
</h1>);
}
```
handler.js
Python 3 示例 (python3-http):
python
def handle(event, context):
return {
"statusCode": 200,
"body": "Hello from OpenFaaS!"
}
handler.py
Golang 示例 (golang-middleware)
```go
package function
import (
"fmt"
"io"
"net/http"
)
func Handle(w http.ResponseWriter, r *http.Request) {
var input []byte
if r.Body != nil {
defer r.Body.Close()
body, _ := io.ReadAll(r.Body)
input = body
}
w.WriteHeader(http.StatusOK)
w.Write([]byte(fmt.Sprintf("Body: %s", string(input))))
}
```
查看我们的官方培训材料
OpenFaaS 的创始人撰写了《Serverless For Everyone Else》一书,旨在通过使用 JavaScript 和 Node.js 的实践练习,帮助开发者理解函数的使用场景。无需编程经验即可尝试这些练习。
示例使用了 faasd 项目,这是一个易于使用且轻量级的方式,可以开始学习 OpenFaaS 和函数。
在 Gumroad 上查看《Serverless For Everyone Else》
《Everyday Go》是一本实用、动手实践的指南,教授如何使用 Go 编写 CLI、网页和微服务。它还专门有一章介绍如何使用 OpenFaaS 和 Go 进行函数的开发和测试。

这是 OpenFaaS 社区版 UI 的截图,其设计旨在易于使用。图中正在运行商店中可用的 inception 函数。
立即使用部署指南将 OpenFaaS 部署到 Kubernetes、OpenShift 或 faasd。
OpenFaaS Standard 和 OpenFaaS for Enterprises 拥有全新的、支持多租户的仪表板,了解更多关于 OpenFaaS 仪表板的信息。
您写过关于 OpenFaaS 的博客吗?您有演讲活动吗?请向下面的社区页面提交 Pull Request。
OpenFaaS 社区版使用 Golang 编写。所有对源代码的第三方贡献均在 MIT 许可证下进行,但 OpenFaaS CE 作为一个整体有额外的限制,其中来自 OpenFaaS Ltd 的贡献根据 OpenFaaS CE EULA 授权。我们欢迎各种类型的贡献,无论是提供反馈、测试现有和新功能,还是修改源代码。
请参阅社区与贡献指南
链接到 OpenFaaS 的 Grafana 仪表板示例,展示自动扩缩容的实际运行情况:此处
带有 Grafana 的 OpenFaaS Pro 自动扩缩容 仪表板
另一个社区仪表板可在此处获取
网站赞助 🌎
如果您希望通过在 openfaas.com 主页上展示您的徽标来获得知名度,请随时通过电子邮件联系我们,或通过 GitHub Sponsors 浏览赞助等级。
媒体 / 分析师
正在查看这些仓库的提交计数和活动吗?所有公共仓库都是 OpenFaaS CE 的一部分,这是一个有限版本的 OpenFaaS,旨在为人们提供无需信用卡注册的低门槛试用体验。OpenFaaS CE 在尽力而为的基础上维护,但它本身不是“OpenFaaS”。所有 OpenFaaS 产品开发都在私有仓库中进行,第三方无法通过简单浏览 GitHub 来追踪。
GitHub Stars 和 Forks 是如何计算的?OpenFaaS CE 不是单一仓库,您不能只看一个仓库就说“啊,那就是总数”——统计数据是从整个 GitHub 组织收集的。
OpenFaaS ® 是由 Alex Ellis 创建的独立开源项目,正在由不断增长的贡献者社区构建和塑造。
OpenFaaS 由 OpenFaaS Ltd(注册号:11076587)托管,该公司还提供商业服务、主页赞助和支持。OpenFaaS ® 是英格兰和威尔士的注册商标。
查看已授权将其徽标列在 openfaas.com 上的部分最终用户公司。