App 是阿里云批量计算新推出的一个功能,支持第三方软件封装成 App,供其他用户使用。App 是批量计算中资源配置的模板,包括使用什么镜像,什么实例类型,VM 个数等描述信息。
查看 App
获取 App 列表
bcs a
获取 App 参数
bcs a :cromwell # 查看详情
bcs a 1 # 或者使用序号也一样
查看 App 详情
说明,只能查看私有的(自己创建的)App 详情。 详情包括软件使用的镜像,运行的命令行等信息。
bcs a my-app 0 # 查看第0个修订版本的详情
创建私有 App
使用 create_app|ca 命令创建私有 App。
使用命令:
bcs create_app|ca <app_name> <cmd> [option]
您可以加个 -h 查看帮助 bcs ca -h
。
最简单创建 App 的方法
bcs ca my_app "echo 123" -i img-ubuntu
您也可以使用另一种方式: 直接使用 app 描述文件提交:
先准备一个 app 描述文件: ./myapp.json
{
"Name": "myapp",
"EnvVars": {},
"Description": "",
"CommandLine": "echo 123",
"OutputParameters": {},
"VM": {
"ECSImageId": "img-ubuntu"
},
"Daemonize": false,
"InputParameters": {},
"Config": {
"InstanceCount": {
"Default": 1,
"Description": "",
"Overwritable": true
},
"ResourceType": {
"Default": "OnDemand",
"Description": "",
"Overwritable": true
},
"DiskType": {
"Default": "cloud_efficiency ",
"Description": "",
"Overwritable": true
},
"MaxRetryCount": {
"Default": 0,
"Description": "",
"Overwritable": true
},
"Timeout": {
"Default": 86400,
"Description": "",
"Overwritable": true
},
"MinDiskSize": {
"Default": 40,
"Description": "",
"Overwritable": true
},
"MinDataDiskSize": {
"Default": 100,
"Description": "",
"Overwritable": true
},
"DataDiskType": {
"Default": "cloud_efficiency ",
"Description": "",
"Overwritable": true
},
"DataDiskMountPoint": {
"Default": "/home/mount/",
"Description": "",
"Overwritable": true
},
"InstanceType": {
"Default": "",
"Description": "",
"Overwritable": true
}
}
}
然后通过命令提交:
bcs ca --file myapp.json
还可以指定 option 覆盖 app.json 中的配置:
bcs ca --file myapp.json -t ecs.s3.large
修改和删除
bcs ua -h # 修改自定义 App 的说明
bcs da -h # 删除自定义 App 的说明
请使用-h 查看帮助。
提交 App 作业
目前仅支持 AutoCluster 作业,不久将来会支持 Cluster。
使用 asub 命令快速使用 App 提交作业。
bcs asub <app_name> -h # 查看指定 App 提交作业的参数等, 每个 App 提交参数是不一样的。
如: bcs asub cromwell -h
--input_
开头的 option,用来指定 app 的 input 参数, 您也可以换成--input-from-file_
开头, 参数值如果是正确的本地文件路径,该文件将被自动上传到默认的 OSS 路径下面。--output_
开头的 option,是用来指定 output 参数的。
另外还可以使用 --config
来指定 App config 中的参数,比如:
bcs asub <app_name> --config MinDataDiskSize=800,DataDiskType='cloud_efficiency',DataDiskMountPoint='/home/mount/' --input_input1 oss://your-buckit/input1/ --output_output1 oss://your-bucket/output1/
关于 App 的 config 参数详情,请参考 App 的 API文档。
对 cromwell 工作流引擎和 WDL 的支持
批量计算服务提供了公共的 App: cromwell, 用来支持 WDL 编写的工作流程。
您可以使用 gen 命令,快速创建特定的模板代码。 目前(编写此文档时)支持 WDL 和 GATK 两种模板。
举例:
bcs gen ./demo -t wdl
这个命令在当前目录下创建一个 demo 目录,并生成一个简单的 WDL 流程代码。
demo
|-- src
|-- hello.wdl
|-- inputs.json
|-- options.json
|-- main.sh # 提交 App 作业的命令
|-- Readme.md # 新手必读
修改 hello.wdl 和 main.sh 中的 OSS 路径,运行 main.sh 提交作业即可。
同理支持 GATK,运行以下命令创建一个 GATK 工程样例:
bcs gen ./demo -t gatk