该内容涉嫌违规,已被下线, 点击申诉
该内容涉嫌违规,已被下线, 点击申诉
写点什么

OpenFaaS 实战之四:模板操作 (template),29 岁 vivo 员工吐槽

  • 2021 年 11 月 10 日
  • 本文字数:2386 字

    阅读完需:约 8 分钟

  1. of-watchdog(为性能而生)

  2. java11模板解析

  3. 自制模板(maven+jdk8)

  4. 终篇,自制模板(springboot+maven+jdk8)

本篇概览

  • 本文是《OpenFaaS 实战》系列的第四篇,经历了前三篇快节奏操作,咱们对 OpenFaaS 有了基本了解,至少部署和开发是轻车熟路,现在要放慢脚步夯实基本功,扫除知识盲点;

  • 本篇目标是掌握 template(模板)有关知识,包括以下内容:


  1. 基本命令

  2. 使用第三方模板

  3. 自己制作模板仓库

  4. 注意事项


  • 从上面的概览可见,本篇内容不多但很基础很重要,接下来打开终端动手练习吧;

关于简化命令

如下所示,faas 其实就是 faas-cli 的链接,因此,平时输入命令用 faas 更简单:


[root@node1 template]# ls -l /usr/local/bin/faas


lrwxrwxrwx. 1 root root 23 11 月 19 11:06 /usr/local/bin/faas -> /usr/local/bin/faas-cli

基本命令

  1. 获取所有官方模板:


faas template pull


执行完毕后,当前目录下出现名为 template 的文件夹,里面是所有官方模板


[root@node1 21]# ls


template


[root@node1 21]# cd template/


[root@node1 template]# ls


csharp dockerfile go java11 java11-vert-x node node12 php7 python python3 python3-debian ruby


[root@node1 template]# cd ..


[root@node1 21]# tree template/


template/


├── csharp


│ ├── Dockerfile


│ ├── function


│ │ ├── Function.csproj


│ │ └── FunctionHandler.cs


│ ├── Program.cs


│ ├── root.csproj


│ └── template.yml


├── dockerfile


│ ├── function


│ │ └── Dockerfile


│ └── template.yml


...


  1. 查看官方模板列表:


faas template store list


返回信息如下(太多了,省略部分):


NAME SOURCE DESCRIPTION


csharp openfaas Classic C# template


dockerfile openfaas Classic Dockerfile template


go openfaas Classic Golang template


java8 openfaas Java 8 template


java11 openfaas Java 11 template


rust-http openfaas-incubator Rust HTTP template


bash-streaming openfaas-incubator Bash Streaming template


...


  1. 查看当前目录下可用的模板:


faas new --list


终端显示:


[root@node1 21]# faas new --list


Languages available as templates:


  • csharp

  • dockerfile

  • go

  • java11

  • java11-vert-x

  • node

  • node12

  • php7

  • python

  • python3

  • python3-debian

  • ruby


  1. 有了模板,就能创建函数,如下命令创建名为 java-function 的函数:


faas-cli new --lang java11 java-function


成功后,修改此文件添加业务代码:./src/main/Handler.java;


  1. 前面执行 faas template store list 查看的时候,注意每个模板的 SOURCE 字段,如果是 openfaas-incubator,例如 rust-http,就要使用以下命令来下载(多了个前缀 openfaas-incubator):


faas-cli template store pull openfaas-incubator/rust-http


以上是模板的基本操作,此刻您可能有疑问:那些都是官方模板,第三方的模板怎么获取?另外如果我想自己做模板给别人用,又该如何操作?这些问题,接下来逐个解答;

使用第三方模板

  1. 我在 GitHub 上做了个第三方模板仓库,来看如何使用,使用其他人的第三方模板都是这个套路;

  2. 所谓模板仓库,其本质还是普通的 GitHub 仓库,只是里面的内容要符合 OpenFaaS 的要求;

  3. 我的模板仓库地址是:https://github.com/zq2599/openfaas-templates ,如下图:



  1. 下载上述模板仓库的命令(注意,找个干净的文件夹执行命令):


faas template pull https://github.com/zq2599/openfaas-templates


可见就是把仓库地址作为参数放在整个命令的末尾


  1. 控制台操作如下,可见下载了一个 template 目录,里面有两个模板:dockerfile 和 java11extend:


[root@node1 333]# faas template pull https://github.com/zq2599/openfaas-templates


Fetch templates from repository: https://github.com/zq2599/openfaas-templates at master


2020/11/22 11:19:53 Attempting to expand templates from https://github.com/zq2599/openfaas-templates


2020/11/22 11:19:58 Fetched 2 template(s) : [dockerfile java11extend] from https://github.com/zq2599/openfaas-templates


[root@node1 333]# ls


template


[root@node1 333]# tree template/


template/


├── dockerfile


│ ├── function


│ │ └── Dockerfile


│ └── template.yml


└── java11extend


├── build.gradle


├── Dockerfile


├── function


│ ├── build.gradle


│ ├── gradle


│ │ └── wrapper


│ │ ├── gradle-wrapper.jar


│ │ └── gradle-wrapper.properties


│ ├── gradlew


│ ├── gradlew.bat


│ ├── settings.gradle


│ └── src


│ ├── main


│ │ └── java


│ │ └── com


│ │ └── openfaas


│ │ └── function


│ │ └── Handler.java


│ └── test


│ └── java


│ └── HandlerTest.java


├── gradle


│ └── wrapper


│ ├── gradle-wrapper.jar


│ └── gradle-wrapper.properties


├── README.md


├── settings.gradle


└── template.yml


16 directories, 17 files


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


  1. 执行 faas new --list 看有哪些模板,果然是 GitHub 仓库中的两个:


[root@node1 333]# faas new --list


Languages available as templates:


  • dockerfile

  • java11extend


  1. 使用模板创建函数:


faas-cli new java11extend-function --lang java11extend -p bolingcavalry

评论

发布
暂无评论
OpenFaaS实战之四:模板操作(template),29岁vivo员工吐槽