OpenFaas使用Go模板创建Function
根据模板创建项目
# 登录openfaas
faas-cli login https://gateway-openfaas.netwarps.com -p xxxx
# 查看已经存在的function列表
faas-cli list
# 拉取语言模板
faas-cli template pull
# 根据默认go模板创建function项目
faas-cli new -p registry.solarfs.io/go-test go-test2 --lang go
生成如下一个目录一个yml文件
go-test2
go-test2.yml
go-test2.yml
如下
version: 1.0
provider:
name: openfaas
gateway: https://gateway-openfaas.netwarps.com
functions:
go-test2:
lang: go
handler: ./go-test2
image: registry.solarfs.io/go-test/go-test2:latest
secrets: # 这个是手动添加的,配置镜像imagePullSecret
- registry-pld-cicd # imagePullSecret name
构建镜像
faas-cli build -f ./go-test.yml --build-arg GOPROXY=https://proxy.golang.com.cn,direct
登录私有镜像仓库
faas-cli registry-login --username user --password pass
推送镜像
faas-cli push -f ./go-test.yml
部署function
faas-cli deploy -f ./go-test.yml
查看部署详细信息
faas-cli describe go-test
测试
echo "test go"|faas-cli invoke go-test
删除function
faas-cli remove go-test
思考
减少代码量
openfaas 如果想要减少代码量,就是自定义提前定义代码模板, 提前把封装好的 模块 或 公共函数,比如说 web route logging metrics utils 等 写成模板,这样其它项目就可以从模板生成,直接写需要的业务代码了。也可以找别人开源的 代码模板,有现成的也可以用。
自动扩容
openfaas 开源版本扩容最多只能扩到5,再高的话,要买企业版,这个不实用, 不如使用k8s hpa 或 keda 实现自动扩容
参考
https://docs.openfaas.com/reference/yaml/
https://docs.openfaas.com/languages/go/
Last updated