欢迎访问我的GitHub
https://github.com/zq2599/blog_demos
内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;
OpenFaaS实战系列文章链接
- 部署
- 函数入门
- Java函数
- 模板操作(template)
- 大话watchdog
- of-watchdog(为性能而生)
- java11模板解析
- OpenFaaS实战之八:自制模板(maven+jdk8)
- OpenFaaS实战之九:终篇,自制模板(springboot+maven+jdk8)
本篇概览
- 本文是《OpenFaaS实战》系列的第二篇,在Kubernetes环境把OpenFaaS在搭建好之后,终于可以开始开发函数了;
- 本篇的主题是熟悉OpenFaaS的函数操作,包括:开发、部署、使用,demo函数使用的语言是python,因为简单;
- demo函数本身并不复杂:一个加法程序,接收1,2,3这样的字符串,分割成三个数字1、2、3,将它们相加的结果返回;
- 提前把函数操作的流程捋捋,如下所示,后面会按照这个流程去执行:
- 接下来,开始操作吧;
提醒
本文中的操作会用到工具faas-cli,前文已提到过此工具可以部署在任意电脑上,远程连接OpenFaaS,请确保faas-cli所在机器上有docker服务,因为构建镜像时会用到。
下载模板
- OpenFaaS官方提供了编程语言模板,执行命令faas-cli template pull,可以将最新模板下载到本地:
[root@node1 faas-template]# faas-cli template pullFetch templates from repository: https://github.com/openfaas/templates.git at master2020/11/19 16:34:31 Attempting to expand templates from https://github.com/openfaas/templates.git2020/11/19 16:34:45 Fetched 12 template(s) : [csharp dockerfile go java11 java11-vert-x node node12 php7 python python3 python3-debian ruby] from https://github.com/openfaas/templates.git
- 执行命令faas-cli new --list,得到模板列表如下,可见语言类型还是很丰富的:
[root@node1 faas-template]# faas-cli new --listLanguages available as templates:- csharp- dockerfile- go- java11- java11-vert-x- node- node12- php7- python- python3- python3-debian- ruby
- 执行以下命令即可创建函数,add是函数名,python是语言类型,bolingcavalry是docker镜像名字的前缀:
faas-cli new add --lang python -p bolingcavalry
- 控制台提示如下:
[root@node1 faas-template]# faas-cli new add --lang python -p bolingcavalryFolder: add created. ___ _____ ____ / _ \ _ __ ___ _ __ | ___|_ _ __ _/ ___|| | | | '_ \ / _ \ '_ \| |_ / _` |/ _` \___ \| |_| | |_) | __/ | | | _| (_| | (_| |___) | \___/| .__/ \___|_| |_|_| \__,_|\__,_|____/ |_|Function created in folder: addStack file written: add.yml
- 当前目录下,产生名为add的文件夹,以及名为add.yml的文件;
- 先看add.yml,这是函数的描述文件,本文中已经够用了,无需修改:
version: 1.0provider: name: openfaas gateway: add: lang: python handler: ./add image: bolingcavalry/add:latest
- 进入add文件夹,看到faas-cli帮我们生成的源码文件handler.py,默认代码:
def handle(req): """handle a request to the function Args: req (str): request body """ return req
- 上述代码不符合咱们的需求,完全替换为以下内容:
def handle(req): array = req.replace('\n', '').split(',') rlt = 0 for i in array: rlt += int(i) return rlt
- 回到add.yml所在目录,执行以下命令开始构建函数:
faas-cli build -f ./add.yml
- 如下所示,开始在本地构建docker镜像,正常情况下可以构建成功:
Step 29/29 : CMD ["fwatchdog"] ---> Running in 94b3e80d0df2Removing intermediate container 94b3e80d0df2 ---> 5e6c22fa838dSuccessfully built 5e6c22fa838dSuccessfully tagged bolingcavalry/add:latestImage: bolingcavalry/add:latest built.[0] < Building add done in 62.81s.[0] Worker done.Total build time: 62.81s
- 查看本地镜像,确定是刚刚构建的:
[root@node1 faas-template]# docker images|grep addbolingcavalry/add latest 5e6c22fa838d 4 minutes ago 88.4MB
关于OpenFaaS访问镜像
- 此时要关注的是K8S环境如何能访问到此镜像;
- 要注意的是OpenFaaS默认的镜像拉取策略是Always,即每次都远程拉取,所以镜像必须放入仓库,例如hub.docker.com、habor、registry等;(这个策略可以修改,不过本文中先不动它)
- 关于镜像仓库的知识就不在此展开,我这里用的是hub.docker.com,因为我的ID是bolingcavalry,因此登录后执行docker push bolingcavalry/add:latest即可推送到远程仓库;......
原文转载:http://www.shaoqun.com/a/898404.html
跨境电商:https://www.ikjzd.com/
沃尔玛:https://www.ikjzd.com/w/220
stylenanda:https://www.ikjzd.com/w/1675.html
r标:https://www.ikjzd.com/w/1070
欢迎访问我的GitHubhttps://github.com/zq2599/blog_demos内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;OpenFaaS实战系列文章链接部署函数入门Java函数模板操作(template)大话watchdogof-watchdog(为性能而生)java11模板解析OpenFaaS实战之八:自制模板(ma
hts:https://www.ikjzd.com/w/525
学生证买飞机票能打折吗?怎样买到便宜的飞机票?:http://www.30bags.com/a/403131.html
学生自助游几点经验 - :http://www.30bags.com/a/408037.html
学生族旅游盘点!学生族中最具影响力的十大国内旅游圣地:http://www.30bags.com/a/414776.html
学士服颜色分类 学士服颜色分别代表什么学历:http://www.30bags.com/a/425289.html
公车掀起老师裙子进入 超短裙老师的好小好紧:http://lady.shaoqun.com/a/247202.html
三个男人一起弄我 一个吃奶两个㖭下面:http://lady.shaoqun.com/m/a/247612.html
老师让我脱她乳罩摸她乳 老师的胸软软的真好吃:http://www.30bags.com/m/a/249799.html
深圳大芬油画村几点开门关门:http://www.30bags.com/a/525611.html
深圳大芬油画村油画价格(一般多少钱+便宜吗):http://www.30bags.com/a/525612.html
2021暑期深圳免费开放的体育场馆汇总:http://www.30bags.com/a/525613.html
性交中有养生的诀窍,关键在于掌握这几点!:http://lady.shaoqun.com/a/436471.html
No comments:
Post a Comment