OpenFaaS函数部署示例
关键步骤
- 从代码模板创建函数
- 将函数构建为 Docker 镜像
- 将镜像推送到 Docker Hub
- 部署函数
- 调用函数
【0】获取代码模板
需要预先拉取OpenFaaS函数模板镜像 https://github.com/openfaas/templates
或者在有网时:
faas-cli template pull
可以从官方商店浏览模板或创建自己的商店并在那里添加自己的模板
查看可用的模板类型:
faas-cli template store list
选择一个模板并使用以下命令在本地检索它:
faas-cli template store pull node10-express
下载后,您选择的模板和存储在同一存储库中的任何其他模板都可以使用:
faas-cli new --list
【1】创建模板函数
需要本地具有函数模板仓库
当前的测试为直接在拉取的模板文件夹内部创建函数
以下命令根据go模板创建新函数go-fn:
faas-cli new go-fn --lang go
#生成以下文件
go-fn.yml #主要配置文件
./go-fn/ #函数文件夹
./go-fn/handler.go #主要函数文件
faas-cli new func_name --lang template_name
您现在可以编辑handler.go
和使用faas-cli
tobuild
和deploy
您的函数
【2】修改主要配置文件标签并编译函数镜像
修改主要配置文件中的image:
字段为docker_user/func_name
结构:
vim go-fn.yml
根据主要配置文件编译函数镜像:
该阶段需要访问外部网络拉取基础函数镜像,注意网络连接
faas-cli build -f qwq-fn.yml
faas-cli build -f func_name.yml
【3】将编译好的镜像推送到Docker Hub
首先需要登录Docker账号,执行命令后输入账号密码
docker login -u 1008613
根据主要配置文件推送函数镜像,分层次推送镜像比较消耗时间
faas-cli push -f qwq-fn.yml
faas-cli push -f func_name.yml
【4】部署函数
通过faas-cli
将函数部署到K8s集群上
faas-cli deploy -f qwq-fn.yml
faas-cli deploy -f func_name.yml
【5】测试函数
直观的调用:
faas-cli invoke qwq-fn
输入STDIN后,使用ctrl+D完成函数调用
调用测试:
echo 'sasasa' | faas-cli invoke qwq-fn
【6】快速部署
up
指令等价于build
、push
、deploy
三者的组合:
faas-cli up func_name.yml