第一个列子,当然是 Hello World
了… 下面使用 Python
, Go
, Java
分别实现…
首先准备好目录:
1 | └── helloworld |
Python
使用CLI创建 function faas-cli new --lang python hello-world
, 会自动生成以下文件
1 | └── helloworld |
其中,handler.py
就是处理 request的 handler,这里我们先实现 hello world的逻辑
1 | def handle(req): |
之后使用配置文件hello-world.yml
来build func,
1 | version: 1.0 |
运行faas-cli build -f ./hello-world.yml
之后,openfaas就将这个funct打包成一个新的image
1 | $ docker image ls | grep hello |
接下来就是部署和测试了,faas-cli deploy --image openfaas-hello-world --name hello-world-python
当然如果需要将新func upload到 Registry/Artifactory上,
faas-cli push -f ./hello-world.yml
,这之前需要配置secret
Golang
类似的,使用faas-cli new --lang go hello-world
创建新function;同样的,openfaas会创建一下几个文件
1 | └── helloworld |
添加handler实现
1 | package function |
部署并测试function
1 | faas-cli build -f ./hello-world.yml |
Java
同样的套路,只不过java有几个版本可以选,java8还是11之类的,faas-cli new --lang java8 hello-world
Java自动生成的目录结构较Python和Go有很大不同,起码使用gradle
build
1 | java |
直奔Handler,java
1 | package com.openfaas.function; |
之后就是部署并测试
1 | faas-cli build -f ./hello-world.yml |
这样,基本算是hello world级别的了解了openfaas;那下一篇就深入的了解下openfaas
最后,Java主语言的我,在尝试OpenFaaS
的HelloWorld的时候,很是不爽…
1 | $ docker image ls | grep hello |