Fn 是一个事件驱动,开源,可在任何平台运行的 FaaS 计算平台。
主要特性:
依赖
- Docker 17.05 或以上版本
- Docker Hub 账号 (Docker Hub) (或其他 Docker 兼容的 registry)
- 登录进 Docker Hub 账号:
docker login
快速开始
安装 CLI 工具
命令行工具不强制安装, 但是使用它会很方便. 安装方法:
1. Homebrew - MacOS
如果你使用Mac并且使用 Homebrew 的话, 可使用以下命令安装:
brew install fn
2. Shell 脚本
在 Linux 和 MacOS 可以使用以下命令安装:
curl -LSs https://raw.githubusercontent.com/fnproject/cli/master/install | sh
这条命令会下载一个 shell 脚本并执行. 因为脚本调用了 sudo , 所以有可能需要输入密码.
3. 下载二进制文件
到 releases 页面下载.
运行 Fn 服务器
启动 Fn 服务器:
fn start
这条命令会使用内置的数据库和消息队列, 以单服务器模式运行 Fn. 你可以在这里查看所有的配置项. 如果你在 Windows 下运行的话, 看这里.
编写你的第一个函数
函数是只完成一个简单任务的小巧强大的代码块. 在编写函数的时候, 不需要关注架构, 只需要关注你要函数处理的任务就可以了.
首先创建一个名为 hello
的空目录,然后 cd 进去.
下面是一个把字符串打印到 STDOUT (标准输出) 的简单的 Go 程序. 把代码复制粘贴到一个文件里面, 把文件命名为 func.go
.
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello from Fn!")
}
现在运行下列 CLI 命令:
# 初始化函数
# 从上面的代码自动检测运行时, 并创建一个 func.yaml 文件
fn init
# 设置 Docker Hub 用户名
export FN_REGISTRY=<DOCKERHUB_USERNAME>
# 对函数进行测试
# 和在服务器上面一样, 函数会在一个容器中运行
fn run
# 把函数部署到 Fn 服务器上(默认为 localhost:8080)
# 这个命令还会为函数创建一个路由
fn deploy --app myapp
现在可以调用你的函数了:
curl http://localhost:8080/r/myapp/hello
# 或者:
fn call myapp /hello
或者在浏览器中: http://localhost:8080/r/myapp/hello
这样就完成了你的第一个函数的部署和调用. 更新你的函数只需要继续编写代码, 然后再次调用 fn deploy myapp
就可以了.
UI
我们还开源了个 Web UI.只需要以下命令就可以运行:
docker run --rm -it --link functions:api -p 4000:4000 -e "API_URL=http://api:8080" fnproject/ui
访问 https://github.com/fnproject/ui 查看更多信息.
更多
获取帮助
参与进来
及时获取信息