进程程序包
更新时间:2023-03-28
1、简介
- 进程程序包(简称“程序包”),是一种特殊的配置项,它指定了进程模式应用的程序服务入口。
- 一个程序包对应一个程序入口,一个进程模式应用可以包含多个程序包。即部署一个进程模式应用,可以下发多个程序服务。
-
进程模式应用 与 容器模式应用 整体框架是相似的:
- 容器模式应用支持添加多个容器,进程模式应用也支持添加多个程序包。
- 容器模式应用的容器镜像对应进程模式应用的是程序包。容器镜像和程序包,本质都是一组程序的打包,入口只有一个。
- 容器和程序包都支持卷、环境变量、启动参数配置。
- 容器模式应用下发的是容器镜像地址和配置卷(或者是配置文件下载地址),然后由baetyl边缘计算框架下载容器镜像文件(
docker pull
)和配置文件。 - 进程模式应用下发的是程序包地址和配置卷(或者是配置文件下载地址),然后由baetyl边缘计算框架下载程序包(
http request
)和配置文件。
2、规范
2.1 边缘侧运行程序目录规范
一个程序包下发下发以后,在边缘侧由baetyl进行动态组装,组装以后必须包含以下两部分组成:
-
程序入口配置文件:
- 文件名称:
program.yml
,固定不变 -
文件内容:`entry: "[可执行程序名称]",比如:
entry: "script-name.sh"
,入口是一个可执行脚本entry: "bin/emqx"
,入口是一个可执行二进制程序,是一个相对于program.yml
所在的文件路径
- 文件名称:
-
可执行程序,有两种形式:
- 可执行脚本:比如一个名称为
script-name.sh
的shell脚本。 - 可执行二进制程序:如果程序有外部依赖文件,可以将可执行程序与外部依赖文件/目录放在一起。
- 可执行脚本:比如一个名称为
说明:
script-name
可替换为实际的脚本名称。- 不管是可执行脚本,还是可执行二进制程序,都必须授予可执行权限。可以通过
chmod +x [file-name]
命令授予可执行权限
2.2 程序包创建规范
基于边缘侧运行程序目录规范,云端创建程序包有多种方式:
- 将
program.yml
文件和可执行程序文件/目录放在一起,然后整体打包成zip包。在创建程序包的时候引入这个zip包,程序包只包含1个变量。
- 将
program.yml
文件单独压缩成一个zip包,将可执行程序也压缩成一个zip包。在创建程序包的时候,同时引入program.yml
文件zip包和可执行程序zip包,程序包包含2个变量。
2.3 程序包变量名规范
- 进程应用下发以后,边缘计算框架baetyl基于应用配置信息下载程序包当中定义的文件。使用变量名作为文件名,因此如果程序包当中引入了多个文件,需要保证变量名是唯一的。
- 边缘计算框架会根据操作系统架构动态下载程序包当中定义的文件,通过变量名称进行匹配,变量名称包含操作系统架构的文件,将会被下载。操作系统架构主要有以下5种,
darwin-amd64
、linux-amd64
、linux-arm-v7
、linux-arm64-v8
、windows-amd64
。所以程序包的变量名可以是linux-arm64-v8-emqx.zip
、emqx-linux-arm64-v8.zip
,只要包含架构即可。
3、创建程序包
3.1 准备程序包依赖文件
此处以emqx程序程序包制作未来进行说明,可以下载如下文件,然后上传至个人的对象存储,也可以直接使用http下载地址:
3.2 创建程序包配置项
进入配置管理页面,切换至进程程序包tab面,然后点击创建程序包,进入创建程序包页面,填写相关信息:
- 名称:配置项名称,不可为空,不可重复
- 描述:配置项描述信息,可为空
- 标签:函数配置项标签,默认添加baetyl-config-type:baetyl-program系统标签
-
配置项:点击引入文件,在弹出对话框当中进行如下配置:
- 平台:选择
linux/arm64-v8
- 类型:此处可以使用HTTP
- URL:输入上述的程序包依赖文件的URL
- 文件名:自定义
- 平台:选择
-
点击确定以后,配置变量名,两个变量名如下,必须包含架构名称
- emqx-program-yml-1.zip-linux-arm64-v8
- emqx-5.0.8-ubuntu20.04-arm64-linux-arm64-v8
- 点击确定,完成程序包创建。
4、直接导入程序包与应用
程序包和应用支持导入功能,将下面两个配置文件下载(右键->另存为)至本地,然后导入到BIE系统当中。
- 进程程序包-emqx-5.0.8-ubuntu20.04-arm64-linux-arm64-v8.json
- 应用-emqx-5.0.8-ubuntu20.04-arm64-linux-arm64-v8.json
因为应用当中引用了程序包,所以需要先导入程序包,再导入应用。
5、查看与更新程序包
- 创建完成后在程序包列表看到已有程序包,点击程序包名称或查看进入程序包详情页。可以在详情页继续引入程序包文件,流程同创建时相同。
- 可以继续引入其它平台的程序包支持其它平台,也可以点击已有文件编辑按键,修改已有文件引入。
- 如程序包已绑定至进程模式应用,对程序包配置更新会同步更新关联进程应用的配置。如进程应用已经部署至设备,对程序包改动会同步至设备,触发进程应用同步更新。
6、删除程序包
在程序包列表页,点击需要删除程序包的删除按键,弹出确认对话框,点击确认完成程序包删除。
需要注意的是,程序包如已经与进程模式应用关联,无法直接删除程序包,必须将程序包和进程模式应用解除关联才可以删除程序包。