栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

OpenFaaS实战之二:函数入门

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

OpenFaaS实战之二:函数入门

  1. 执行以下命令即可创建函数,add是函数名,python是语言类型,bolingcavalry是docker镜像名字的前缀:

faas-cli new add --lang python -p bolingcavalry

  1. 控制台提示如下:

[root@node1 faas-template]# faas-cli new add --lang python -p bolingcavalry

Folder: add created.


/ _ _ __ ___ _ __ | __| _ __ _/ ___|

| | | | '_ / _ '_ | |_ / |/ _ __

| || | |) | / | | | | (| | (| |) |

_/| ./ ___|| ||| _,|_,|___/

|_|

Function created in folder: add

Stack file written: add.yml

  1. 当前目录下,产生名为add的文件夹,以及名为add.yml的文件;

  2. 先看add.yml,这是函数的描述文件,本文中已经够用了,无需修改:

version: 1.0

provider:

name: openfaas

gateway: http://192.168.133.187:31112

functions:

add:

lang: python

handler: ./add

image: bolingcavalry/add:latest

  1. 进入add文件夹,看到faas-cli帮我们生成的源码文件handler.py,默认代码:

def handle(req):

“”"handle a request to the function

Args:

req (str): request body

“”"

return req

  1. 上述代码不符合咱们的需求,完全替换为以下内容:

def handle(req):

array = req.replace(’n’, ‘’).split(’,’)

rlt = 0

for i in array:

rlt += int(i)

return rlt

  1. 回到add.yml所在目录,执行以下命令开始构建函数:

faas-cli build -f ./add.yml

  1. 如下所示,开始在本地构建docker镜像,正常情况下可以构建成功:

Step 29/29 : CMD [“fwatchdog”]

—> Running in 94b3e80d0df2

Removing intermediate container 94b3e80d0df2

—> 5e6c22fa838d

Successfully built 5e6c22fa838d

Successfully tagged bolingcavalry/add:latest

Image: bolingcavalry/add:latest built.

[0] < Building add done in 62.81s.

[0] Worker done.

Total build time: 62.81s

  1. 查看本地镜像,确定是刚刚构建的:

[root@node1 faas-template]# docker images|grep add

bolingcavalry/add latest 5e6c22fa838d 4 minutes ago 88.4MB

[](

)关于OpenFaaS访问镜像

  1. 此时要关注的是K8S环境如何能访问到此镜像;

  2. 要注意的是OpenFaaS默认的镜像拉取策略是Always,即每次都远程拉取,所以镜像必须放入仓库,例如hub.docker.com、habor、registry等;(这个策略可以修改,不过本文中先不动它)

  3. 关于镜像仓库的知识就不在此展开,我这里用的是hub.docker.com,因为我的ID是bolingcavalry,因此登录后执行docker push bolingcavalry/add:latest即可推送到远程仓库;

[](

)部署函数

  1. 执行部署命令faas-cli deploy -f add.yml,控制台会提示部署成功,还会给出URL:

[root@node1 faas-template]# faas-cli deploy -f add.yml

Deploying: add.

WARNING! Communication is not secure, please consider using HTTPS. Letsencrypt.org offers free SSL/TLS certificates.

Deployed. 202 Accepted.

URL: http://192.168.133.187:31112/function/add.openfaas-fn

  1. 如果K8S可以顺利拉取到镜像,就可以看到openfaas-fn这个namespace下新增了名为add-xxx的pod,且状态正常:

[root@node1 faas-template]# kubectl get pods -n openfaas-fn

NAME READY STATUS RESTARTS AGE

add-5679bcd94c-vc9rw 1/1 Running 0 32m

nodeinfo-57fb768fb8-955tf 1/1 Running 0 104m

  1. 此时登录管理页面,http://192.168.133.187:31112,可以看到新增的函数,也可以在页面上验证功能调用是否正常,如下图:

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201119181743226.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW

【一线大厂Java面试题解析+核心总结学习笔记+最新架构讲解视频+实战项目源码讲义】

浏览器打开:qq.cn.hn/FTf 免费领取

5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70#pic_center)

  1. 也可以在其他电脑上发起请求测试,如下所示,函数可以正常服务:

[root@node1 ~]# curl http://192.168.133.187:31112/function/add -X POST -d ‘1,2,3,4,5,6’

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/389110.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号