命令行工具概述
医疗智能体命令行工具(eihealth-toolkit)是配套EIHealth平台,为EIHealth平台各功能组件提供命令行管理工具。借助此工具,可以辅助您对EIHealth平台项目中数据、应用、流程和作业资源进行管理和使用。
eihealth-toolkit具备灵活性高、扩展性强:
- 单一可执行文件,方便拷贝与安装。
- 支持多操作系统,包括Windows、Linux和MacOS,满足不同开发者需求。
使用命令行工具执行数据操作的详细步骤如下所示,详细的命令行介绍请参见医疗智能体命令行工具。
前提条件
获取认证信息(AK/SK,区域名称,平台ID)。
步骤1:下载eihealth-toolkit
针对不同操作系统,eihealth-toolkit下载地址如下所示。
支持平台 |
下载地址 |
---|---|
Windows 64位 |
|
Linux ARM 64位 |
|
Linux AMD 64位 |
|
macOS |
步骤2:安装eihealth-toolkit
本示例中以Windows系统为例,介绍安装命令行工具的方法。
- 下载Windows版本的客户端,得到health.exe文件,health文件无需安装,放置在任一文件夹中即可。
图1 下载命令行工具
- 使用win键+R,输入cmd打开windows的cmd窗口。进入工具所在的目录,输入health命令,即可使用。
如果cmd窗口显示目录不是health文件所在目录,请使用cd命令切换路径。例如,切换至D盘:
cd /d d:
图2 客户端
- 使用Linux版本命令行工具时,您需要在本地搭建Linux环境,并将下载的health文件放置所需的目录下,例如:
- 如果当前目录为health所在目录,可以使用./health命令执行命令行工具。
- 如果当前目录不是health所在目录,需要使用绝对路径。如当前目录为/opt,假设health存放在/root/health-toolkit/下,需要指定/root/health-toolkit/health路径进行使用。
- 如果无法运行,使用chmod 755 health命令设置执行权限。
步骤3:初始化配置
在使用命令行工具前,需要初始化配置信息,通过config命令对eihealth-toolkit进行初始化配置。本节以Windows为例介绍配置过程,Linux和macOS环境配置过程相同。
- 命令结构
执行health config add命令配置AK、SK、region、platform-id信息,获取方法请参见获取认证信息。
health config add [flags]
表2 参数说明 参数
简写
是否必选
说明
--domain-name
-d
是
与管理员(购买平台的账户)的账号名一致。
--user-name
-u
是
子用户的用户名。
管理员(购买平台的账户)登录时,user-name和domain-name一致。
--password
-w
是
密码。
--ak
-a
是
AK(Access Key ID):访问密钥ID。
--sk
-s
是
SK(Secret Access Key):与访问密钥ID结合使用的密钥。
--region
-r
是
服务区域名称。
--platform-id
-i
是
平台ID,获取方法请参见获取认证信息。
--iam-endpoint
-m
否
IAM终端节点名称,请在地区与终端节点中获取。
--health-endpoint
-e
否
EIHealth终端节点名称,请在地区与终端节点中获取。
--swr-endpoint
-t
否
SWR镜像仓库地址。
获取方式:
- 登录容器镜像服务管理控制台。
- 单击界面右侧“登录指令”,获取内网登录指令末尾的SWR镜像仓库地址。例如100.78.15.50:20202。
--log-path
-l
否
日志路径,不填写时默认为命令行工具当前路径下healthcli.log文件。
路径设置格式:
- Windows系统为“路径\文件名”。
- Linux系统格式为“路径/文件名”。
--http-proxy
-p
否
HTTP代理配置,格式为“http://username:password@your-proxy:your-port”。
--obs-endpoint
-o
否
OBS终端节点名称,请在地区与终端节点中获取。
--obs-install-path
-q
否
设置obsutil安装路径,默认安装在当前运行目录。
设置时,该路径必须为obsutil运行文件名,如/home/path/obsutil、/home/path/obsutil-1.1.1
--obs_down_load_url
-D
否
obsutil下载链接,obsutil将下载到obs-install-path上。
参数有改动时才会触发下载。
下载链接的内容可以是zip、tar.gz文件、二进制文件,如果是压缩文件,文件夹内的obsutil必须命名为obsutil(和obsutil官方链接保持一致)。
--force
-f
否
强制操作。如果下载obsutil时,指定的obs-install-path上已经有同名文件,不带-f时会提示用户,带上-f会直接覆盖原文件。
- 命令示例
health config add -d xxx -u xxx -w xxx -i xxx -r cn-north-4 -o obs.cn-north-4.myhuaweicloud.com -a xxx -s xxx -D https://obs-wwx-2022.obs.cn-north-4.myhuaweicloud.com/obsuti-windows/obsutil.exe -q obsutil-linux/obsutil.exe –f -m xxx -e xxx -t xxx # 执行成功返回结果如下 add ak successfully! add sk successfully! add region successfully! add platform-id successfully! add user-name successfully! add password successfully! add domain-name successfully! add obs-endpoint successfully! add obs_install_path successfully! add obs_down_load_url successfully! add iam-endpoint successfully! add health-endpoint successfully! add swr-endpoint successfully!
图3 命令示例
- 执行以上命令行,会在系统所在的用户目录下自动生成一个.health文件夹,文件夹中包含config.ini配置文件,用于存储任务执行所涉及到的配置,如密钥、区域、当前项目等信息。
- 生成的配置文件不建议直接修改,如需改动请使用命令行工具修改。
- 配置文件中保存有用户的AK、SK信息,为了避免密钥泄露,会对文件中的SK进行加密以保护密钥安全。
- 清空配置请执行health config clear命令。
步骤4:上传数据
使用upload命令,将本地数据上传到EIHealth平台。该命令不支持将数据上传到引用目录。
最小可以上传0Byte的空文件或文件夹,最大可以上传48.8TB的单个文件。
数据在上传的过程中,受网络影响可能出现损坏,上传命令默认会在上传完成后,验证项目中数据的MD5值与本地数据的MD5值的一致性,以及验证项目中数据的大小与本地数据大小一致性。
- 命令结构
health upload <srcdir> <destdir> [flags]
表3 参数说明 参数
简写
是否必选
说明
srcdir
无
是
源路径。
destdir
无
是
目的路径。
--rename
-e
否
重命名,上传文件时可选。
--recursive
-r
否
递归上传文件夹中所有的文件和子文件夹,上传文件夹时必选。
--force
-f
否
强制操作,不进行询问提示,上传文件夹时可选。
--flat
-l
否
上传文件夹时,只上传该文件夹下的所有内容,上传文件夹时可选。
--update
-u
否
增量上传操作,设置该参数后上传每个文件时会比对平台数据路径中的文件,仅在以下情况时上传数据:
- 文件不存在。
- 待上传文件大小与平台文件大小不一致。
- 文件的最后修改时间不一致。
--parallel
-p
否
上传文件时,每个分段上传任务数的最大并发数,默认为5。取值范围[1,10]。
--jobs
-j
否
上传文件夹时,批量任务的最大并发数,默认为5。取值范围[1,10]。
- 命令示例
本节以Windows为例介绍eihealth-toolkit的使用过程,Linux和macOS环境使用方法基本相同,可参考。
- 上传数据前需要使用switch命令进入待操作的项目。例如,使用health switch project test命令进入到名为test的项目中。
- 将本地数据上传到test项目中的src文件夹中。
详细的数据操作命令,如下载、删除、拷贝、切换路径等请参见“命令行工具 > 数据管理命令”章节。
- 将本地D:\local\data\test.txt路径下的txt文件上传至src文件夹中。
上传完成后,会在EIHealth平台数据管理页面的src文件中,生成test.txt文件。
health upload D:\local\data\test.txt /src/
- 上传文件并重命名为abc.txt。
health upload D:\local\data\test.txt /src/ --rename abc.txt
- 递归上传本地D:\local路径下的所有文件和文件夹至项目src文件夹中(不上传local文件夹本身)。
health upload D:\local /src/ -r -f -l
- 上传本地D:\local文件夹至项目src文件夹中(上传local文件夹本身)。
health upload D:\local /src/ -r -f
- 增量上传文件,同步本地D:\local\test.txr文件至项目src文件夹中。
health upload D:\local\test.txt /src/ --update -r
- 列举路径中的对象时,需使用/xxx/格式,如示例中的/src/。
- 列举本地路径中的文件夹对象时,需要使用“路径/文件名”或“路径\文件名”格式。请依据操作系统的路径规范使用,如示例中的D:\local。
- 如果路径中带有特殊字符比如()之类的,运行的时候需要将整个路径用""括起来,或者用\将字符转义,例如:health cp "/src2/abs(1).txt" /src1/ 或者 health cp /src2/abs\(1\).txt /src1/ 。
- 将本地D:\local\data\test.txt路径下的txt文件上传至src文件夹中。
- 上传数据前需要使用switch命令进入待操作的项目。例如,使用health switch project test命令进入到名为test的项目中。
步骤5:下载数据
使用download命令将EIHealth平台的数据下载到本地,此命令不支持下载引用项目中的数据。
数据在下载的过程中,受网络影响可能出现损坏,下载命令默认会在下载完成后,验证项目中数据的MD5值与本地数据的MD5值的一致性,以及验证项目中数据的大小与本地数据大小一致性。
- 命令结构
health download <srcdir> <destdir> [flags]
表4 参数说明 参数
简写
是否必选
描述
srcdir
无
是
源路径。
destdir
无
是
目的路径。
--rename
-e
否
重命名。
--recursive
-r
否
按指定的对象名前缀批量下载,批量下载时必选。
--force
-f
否
强制操作,不进行询问提示,批量下载时可选。
--flat
-l
否
批量下载时,不包含上一级父对象名前缀,批量下载时可选。
--update
-u
否
增量下载操作,设置该参数后,下载每个文件时会比对本地的文件,仅在以下情况时下载数据:
- 文件不存在。
- 下待载文件大小与本地文件大小不一致。
- 文件的最后修改时间不一致。
- 命令示例
本节以Windows为例介绍eihealth-toolkit的使用过程,Linux和macOS环境使用方法基本相同,可参考。
- 下载数据前需要使用switch命令进入待操作的项目。例如,使用health switch project test命令进入到名为test的项目中。
- 下载项目中的数据至本地。
- 下载项目中src/abc.txt文件到本地的data路径中。
health download /src/abc.txt D:\local\data
- 下载项目中的abc.txt文件到本地,重命名为abc1.txt。
health download /src/abc.txt D:\local\data --rename abc1.txt
- 递归下载项目中src文件夹中的所有文件和文件夹(包含src文件夹本身)至本地data路径,且下载过程中不进行询问提示。
health download /src/ D:\local\data -r -f
- 递归下载项目中src文件夹中的所有文件和文件夹(不包含src文件夹本身)至本地data路径,且下载过程中不进行询问提示。
health download /src/ D:\local\data -r -f --flat
- 增量下载文件。同步项目中src文件夹下所有的文件和文件夹至本地data路径中。
health download /src/ D:\local\data --update -r
列举路径中的对象时,需使用/xxx/格式,如示例中的/src/。
如果路径中带有特殊字符比如()之类的,运行的时候需要将整个路径用""括起来,或者用\将字符转义,例如:health cp "/src2/abs(1).txt" /src1/ 或者 health cp /src2/abs\(1\).txt" /src1/ 。
- 下载项目中src/abc.txt文件到本地的data路径中。
清理历史命令
为防止配置文件中的敏感信息泄露,建议使用health config clear命令定时清除本地配置文件。
对于执行的历史命令,可通过以下方法清除。
- Linux:执行history -c命令清除历史记录,重新登录命令行工具后,记录可恢复。执行rm -f $HOME/.bash_history命令,可删除记录文件,清空历史。
- macOS系统:执行ps -p $$命令检查shell类型。
- 类型为bash:操作与Linux系统相同。
- 类型为zsh:执行history -p命令清除历史记录,重新登录命令行工具后,记录可恢复。执行rm -rf ~/.zsh_history命令,退出终端后再次执行history -p命令可删除记录文件,清空历史。
- Windows系统:对于当前执行的命令,可通过关闭cmd窗口实现历史命令的清理。