快速开始
安装 Refunc
在 Minikube 中部署
为了方便本地测试, Refunc 为 Minikube 和 Docker for Mac refunc 提供了 play
命令, 用来生成一个本地最小环境的k8s配置文件, 在终端里执行下面的命令:
docker run --rm -it refunc/refunc refunc play gen -n refunc-play | kubectl apply -f -
如果一切顺利的话此时 Refunc 已经在本地的 Kubernetes 里跑起来了:
$ kubectl get deployments,services -n refunc-play
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
deployment.extensions/aws-api-gw 1 1 1 1 30s
deployment.extensions/nats-cluster 1 1 1 1 30s
deployment.extensions/refunc-play 1 1 1 1 30s
deployment.extensions/s3 1 1 1 1 30s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/aws-api ClusterIP 10.100.34.197 <none> 80/TCP 30s
service/nats ClusterIP 10.110.36.186 <none> 4222/TCP 30s
service/refunc-http ClusterIP 10.102.122.191 <none> 80/TCP 30s
service/s3 ClusterIP 10.110.184.0 <none> 80/TCP 30s
一键删除
docker run --rm -it -e REFUNC_ENV=cluster refunc/refunc \
refunc play gen -n refunc-play | kubectl delete -f -
TIP
Refunc 企业版提供基于 Helm Chart 在线上的集群中部署及多租户管理
添加运行时
这里我们添加 AWS 的 python3.7
kubectl create -n refunc-play -f \
https://github.com/refunc/lambda-python3.7-example/releases/download/v0.0.2/xenv.yaml
创建云函数
使用 AWS Cli
Refunc 做了一个兼容 AWS Lambda 和 S3 的 网关, 让用户可以使用 aws-cli 无缝使用 Lambda 函数
在此之前需要现将网关的端口转发到本地
kubectl port-forward deployment/aws-api-gw 9000:80 -n refunc-play
为了方便演示, 下载预先打包好的函数 Function
cd /tmp
wget https://github.com/refunc/lambda-python3.7-example/releases/download/v0.0.1/lambda.zip
TIP
函数打包可以参考各种相关文档及使用相关工具
创建 python3.7 的函数
aws --endpoint-url=http://127.0.0.1:9000 \
lambda create-function --function-name localtest \
--handler lambda_function.lambda_handler \
--zip-file fileb:///tmp/lambda.zip \
--runtime python3.7 \
--role arn:aws:iam::XXXXXXXXXXXXX:role/your_lambda_execution_role
调用
aws --endpoint-url=http://127.0.0.1:9000 \
lambda invoke --function-name localtest /tmp/output.json && cat /tmp/output.json
用户界面
在团队内部我们使用 Rancher 二次开发构建了整个中台, 这里 是 Refunc 集成到 rancher/ui 的图形界面, 它用 refunc-rancher 为前端提供兼容 Rancher API 的后端服务