作为边缘计算平台,Fox-Edge允许用户开发自己的Python私有化服务,然后部署到Fox-Edge之中,与Fox-Edge构成更为丰富的边缘计算。
在此之前,需要预先安装Python的运行时环境,以及一些必要的组件。
Python安装
#安装python3
apt-get install python3 -y
#安装pip
apt-get install pip -y
#安装redis.py组件
pip install redis
#安装pymysql.py组件
pip install pymysql
Fox-Edge管理服务在启动用户托管的Python程序时,会将MySql和Redis的连接参数传递给用户自己的Python程序的入口程序文件, 那么Python私有化程序,可以通过下列语句的方式获得mysql和redis连接参数,跟mysql和redis进行连接后,对它们进行访问操作。
包括建立自己的私有化数据库表和topic,也包括读取fox-edge的mysql和redis的信息。
#入口程序py的头部,可以通过这段语句获得mysql、redis的连接信息
args = sys.argv[1:] # 去除第一个元素(脚本名称),restart.sh会将必要的redis、mysql和自定义的pyParam参数传递进来。
实际上,fox-edge的管理服务,是通过linux的命令行,将系统参数传递给用户的私有化python服务的。
# 可以使用该命令,在linux下查看,fox-edge传递给python服务的命令行参数
#ps -aux|grep python
python3 /opt/fox-edge/bin/service/python-server-demo/python-server-demo-20240312.py --app_type=service --app_name=python-server-demo --env_type=device server.port=9021 redis.host=localhost redis.port=6379 redis.password=12345678 mysql.host=localhost mysql.port=3306 mysql.username=fox-edge mysql.password=12345678 mysql.database=fox_edge
用户的私有化Python服务开发完成以后,按照Fox-Edge下面提示的打包方式进行打包,就可以安装到Fox-Edge之中,并被Fox-Edge的管理服务进行自动管理。
Fox-Edge管理服务在启动用户托管的Python程序时,会将MySql和Redis的连接参数传递给用户自己的Python程序的入口程序文件,
appEngine (必填): 必须为 python3
appType (必填): 建议为 service
appName (必填): 服务名称
pyName (必填): Python主程序的文件名称,Python程序可以包括多个自定义的py程序文件,其中一个py为启动程序,其他为被它调用的自定义lib的py
pyParam (选填): 如果需要传递一些自定义的命令行参数给python,可以在这边填写相关内容
配置文件范例:
appEngine=python3
appType=service
appName=python-server-demo
pyName=python-server-demo-20240312.py
pyParam=" param1=1234 param2=5678"
那么最终会形成这种格式的启动命令行,那么python程序内,可以通过args = sys.argv[1:] 获得自己需要的参数
#构造的可执行命令行
python3 /opt/fox-edge/bin/service/python-server-demo/python-server-demo-20240312.py --app_type=service --app_name=python-server-demo --env_type=device server.port=9132 redis.host=localhost redis.port=6379 redis.password=12345678 mysql.host=localhost mysql.port=3306 mysql.username=fox-edge mysql.password=12345678 mysql.database=fox_edge param1=1234 param2=5678
具体的Python范例,可以参考范例项目python-server-demo.tar