使用App
App 是阿里云批量計算新推出的一個功能,支持第三方軟件封裝成 App,供其他用戶使用。App 是批量計算中資源配置的模板,包括使用什么鏡像,什么實例類型,VM 個數(shù)等描述信息。
查看 App
獲取 App 列表
bcs a
獲取 App 參數(shù)
bcs a :cromwell # 查看詳情
bcs a 1 # 或者使用序號也一樣
查看 App 詳情
說明,只能查看私有的(自己創(chuàng)建的)App 詳情。 詳情包括軟件使用的鏡像,運行的命令行等信息。
bcs a my-app 0 # 查看第0個修訂版本的詳情
創(chuàng)建私有 App
使用 create_app|ca 命令創(chuàng)建私有 App。
使用命令:
bcs create_app|ca <app_name> <cmd> [option]
您可以加個 -h 查看幫助 bcs ca -h
。
最簡單創(chuàng)建 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 作業(yè)
目前僅支持 AutoCluster 作業(yè),不久將來會支持 Cluster。
使用 asub 命令快速使用 App 提交作業(yè)。
bcs asub <app_name> -h # 查看指定 App 提交作業(yè)的參數(shù)等, 每個 App 提交參數(shù)是不一樣的。
如: bcs asub cromwell -h
--input_
開頭的 option,用來指定 app 的 input 參數(shù), 您也可以換成--input-from-file_
開頭, 參數(shù)值如果是正確的本地文件路徑,該文件將被自動上傳到默認的 OSS 路徑下面。--output_
開頭的 option,是用來指定 output 參數(shù)的。
另外還可以使用 --config
來指定 App config 中的參數(shù),比如:
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/
關(guān)于 App 的 config 參數(shù)詳情,請參考 App 的 API文檔。
對 cromwell 工作流引擎和 WDL 的支持
批量計算服務提供了公共的 App: cromwell, 用來支持 WDL 編寫的工作流程。
您可以使用 gen 命令,快速創(chuàng)建特定的模板代碼。 目前(編寫此文檔時)支持 WDL 和 GATK 兩種模板。
舉例:
bcs gen ./demo -t wdl
這個命令在當前目錄下創(chuàng)建一個 demo 目錄,并生成一個簡單的 WDL 流程代碼。
demo
|-- src
|-- hello.wdl
|-- inputs.json
|-- options.json
|-- main.sh # 提交 App 作業(yè)的命令
|-- Readme.md # 新手必讀
修改 hello.wdl 和 main.sh 中的 OSS 路徑,運行 main.sh 提交作業(yè)即可。
同理支持 GATK,運行以下命令創(chuàng)建一個 GATK 工程樣例:
bcs gen ./demo -t gatk