建立一個 BatchCompute 叢集。
請求文法
請求行:
POST /clusters?IdempotentToken=vU7xaM9YCqqAFHAVvRVynoMBZSgD0MPn HTTP/1.1
要求方法為 POST ,請求資源為 clusters ,參數說明如下:
屬性名稱 | 類型 | 是否必須 | 描述 |
IdempotentToken | string | 否 | 用於保證請求的等冪性。由使用者產生該參數值,要保證在不同請求間唯一,最大不值過64個字元,字元包括了字母、數字以及底線。 |
請求資料:
請求資料以 JSON 格式描述:
{
"Name": "test-cluster",
"Description": "demo",
"InstanceType": "ecs.sn1ne.large",
"ImageId": "img-ubuntu",
"Bootstrap": "",
"UserData": {
"key2": "value2",
"key1": "value1"
},
"EnvVars": {
"key3": "value3",
"key4": "value4"
},
"Notification": {
"Topic": {
"Name": "test-topic",
"Endpoint": "http://[UserId].mns.[Region].aliyuncs.com/",
"Events": [
"OnClusterDeleted",
"OnInstanceCreated",
"OnInstanceActive"
]
}
},
"Groups": {
"group1": {
"DesiredVMCount": 3,
"InstanceType": "",
"ResourceType": "OnDemand",
"SpotStrategy": "",
"SpotPriceLimit": 0.0
}
},
"Configs": {
"Disks": {
"SystemDisk": {
"Type": "cloud_efficiency",
"Size": 50
},
"DataDisk": {
"Type": "cloud_efficiency",
"Size": 500,
"MountPoint": "/home/my-data-disk"
}
},
"Mounts": {
"Locale": "GBK",
"Lock": false,
"CacheSupport": true,
"CacheBlockSize": 262144,
"CacheTotalSize": 536870912,
"OSS": {
"AccessKeyId": "[OSS Access Key Id]",
"AccessKeySecret": "[OSS Access Key Id Secret]",
"SecurityToken": ""
},
"Entries": [
{
"Source": "nas://26a174a62f-sfi98.cn-shenzhen.nas.aliyuncs.com:/",
"Destination": "/home/admin/mydir1/",
"WriteSupport": true
},
{
"Source": "oss://my-test-bk/",
"Destination": "/home/admin/mydir3/",
"WriteSupport": false
}
]
},
"Networks": {
"VPC": {
"VpcId": "[Your vpc id]",
"CidrBlock": "192.168.0.0/16"
},
"Classic": {
"AllowIpAddress": [],
"AllowIpAddressEgress": [],
"AllowSecurityGroup": [],
"AllowSecurityGroupEgress": []
}
}
}
}
屬性說明:
屬性名稱 | 類型 | 是否必須 | 描述 |
Name | string | 是 | 叢集名稱。長度為[2, 128]個英文或中文字元。必須以大小字母或中文開頭,不能以 http:// 和https:// 開頭。可以包含數字、半形冒號(:)、底線(_)或者連字號(-)。 |
Description | string | 否 | 叢集的描述資訊。長度為[2, 256]個英文或中文字元。必須以大小字母或中文開頭,不能以 http:// 和 https:// 開頭。可以包含數字、半形冒號(:)、底線(_)或者連字號(-) |
InstanceType | string | 是 | 構建叢集的執行個體類型。目前支援的ECS執行個體類型參閱 執行個體類型。 |
ImageId | string | 是 | 鏡像標識符。您可以使用官方定義的或自訂的鏡像。可以通過 擷取鏡像列表擷取您可使用的所有鏡像標識符。 |
DependencyIsvService | string | 否 | 執行程式依賴的阿里雲提供的ISV服務,目前提供的ISV服務有:GTX,預設為空白不依賴任何ISV服務。 |
Bootstrap | string | 否 | 執行個體啟動啟動並執行命令。您可以指定Bootstrap來初始化您的環境。Bootstrap 與 JOB 指定的程式運行命令有區別,JOB指定的程式是用來運行您的作業。 |
UserData | map<string, string> | 否 | 使用者自訂的資訊,您可以定義 map 的 key 和 value 值。使用者程式使用 ECS 的 user server 擷取。 |
EnvVars | map<string, string> | 否 | 虛擬機器的環境變數,您可以定義 map 的 key 和 value 值。使用者程式從環境變數中擷取。 |
Groups | map<string, object> | 是 | 叢集的執行個體組群資訊。key 是您自訂的 group name, value 是 GroupDesc 類型。 一個叢集可以包含多個執行個體組,執行個體組有數量限制,參閱 使用者限額 。 |
Notification | object | 否 | 使用者指定訊息通知配置。 |
Configs | object | 否 | 叢集的一些配置資訊,比如執行個體的磁碟配置、網路和掛載路徑。 |
返回資訊
成功
狀態行:
HTTP/1.1 201 Created
響應資料:
{
"Id":"cls-6ki3sg6sqlno7nt8fu0007"
}
屬性說明:
屬性名稱 | 類型 | 是否必須 | 描述 |
Id | string | 是 | 作業標識符。每個叢集都有唯一的叢集標識符,你需要通過叢集標識符來管理您的叢集。 |
錯誤
錯誤響應格式請參閱 返回結果。
建立叢集特有的錯誤碼:
狀態代碼 | 錯誤碼 | 錯誤資訊 | 語義 |
400 | IdempotentTokenMismatch | Specified idempotent token mismatch. | 說明該token已經被使用過,並且該請求參數與之前的請求不一樣。 |
400 | InvalidJsonFormat | The request body has an invalid json format. | 請求body是一個非法的JSON格式。 |
400 | InvalidHttpBody | Specified parameter HttpBody is not valid. Its type must be object. | http body必須是一個object。 |
400 | MissingName | Name is mandatory for this action. | 缺少Name參數。 |
400 | MissingConfigs.Networks.VPC.OppositeRouterId | Configs.Networks.VPC.OppositeRouterId is mandatory for this action. | 缺少Configs.Networks.VPC.OppositeRouterId參數。 |
400 | MissingConfigs.Networks.VPC.OppositeAccessPointId | Configs.Networks.VPC.OppositeAccessPointId is mandatory for this action. | 缺少Configs.Networks.VPC.OppositeAccessPointId參數。 |
400 | MissingConfigs.Networks.VPC.OppositeRegionId | Configs.Networks.VPC.OppositeRegionId is mandatory for this action. | 缺少Configs.Networks.VPC.OppositeRegionId參數。 |
400 | InvalidName | Specified parameter Name is not valid. Its type must be string. | Name必須是一個string。 |
400 | InvalidName | Specified parameter Name is not valid. Its length must be in [1, 64]. | Name的長度必須在1與64之間。 |
400 | InvalidName | Specified parameter Name is not valid. It must only contain characters within [a-zA-Z0-9_-], and must not start with [0-9]. | Name中只能包括字母數字和_-,但不能以數字開頭。 |
400 | InvalidDescription | Specified parameter Description is not valid. Its type must be string. | Description必須是一個string。 |
400 | InvalidDescription | Specified parameter Description is not valid. Its length must be in [0, 1024]. | Description的長度必須在0與1024之間。 |
400 | MissingImageId | ImageId is mandatory for this action. | 缺少ImageId參數。 |
400 | InvalidImageId | Specified parameter ImageId is not valid. Its type must be string. | ImageId必須是一個string。 |
400 | InvalidImageId | Specified parameter ImageId is not valid. Its length must be in [1, 256]. | ImageId的長度必須在1與256之間。 |
400 | InvalidUserData | Specified parameter UserData is not valid. Its type must be object. | UserData必須是一個object。 |
400 | InvalidUserData | Specified parameter UserData is not valid. Its size must be in [0, 64]. | UserData的大小必須在0與64之間。 |
400 | InvalidUserData.{key} | Specified parameter UserData.{key} is not valid. Its length must be in [1, 128]. | UserData.{key}的大小必須在1與128之間。 |
400 | InvalidUserData.{key}.value | Specified parameter UserData.{key}.value is not valid. Its type must be string. | UserData.{key}對應的Value必須是一個string。 |
400 | InvalidUserData.{key}.value | Specified parameter UserData.{key}.value is not valid. Its length must be in [0, 1024]. | UserData.{key}對應的value的長度必須在0與1024之間。 |
400 | InvalidGroups | Specified parameter Groups is not valid. Its type must be object. | Groups必須是一個object。 |
400 | InvalidGroups.{key} | Specified parameter Groups.{key} is not valid. Its type must be object. | Groups.{key}必須是一個object。 |
400 | InvalidGroups.{key} | Specified parameter Groups.{key} is not valid. Its size must be in [1, 64]. | Groups.{key}的大小必須在1與64之間。 |
400 | MissingDesiredVMCount | DesiredVMCount is mandatory for this action. | 缺少DesiredVMCount參數。 |
400 | InvalidDesiredVMCount | Specified parameter DesiredVMCount is not valid. Its type must be integer. | DesiredVMCount必須是一個integer。 |
400 | InvalidDesiredVMCount | Specified parameter DesiredVMCount is not valid. It must be in [1, 65536]. | DesiredVMCount的大小必須在1與65536之間。 |
400 | InvalidCidrBlock | Specified parameter CidrBlock is not valid. Configs.Networks.VPC.CidrBlock is not valid. | 無效的CidrBlock。 |
403 | QuotaExhausted.MaxClusterCount | The MaxClusterCount ({value}) quota is exhausted. | Cluster數量不能超過{value}。 |
403 | QuotaExhausted.MaxClusterGroupCount | The MaxClusterGroupCount ({value}) quota is exhausted. | 一個Cluster中的Group的數量不能超過{value}。 |
403 | QuotaExhausted.MaxClusterGroupDesiredVMCount | The MaxClusterGroupDesiredVMCount ({value}) quota is exhausted. | 一個Cluster中的一個Group的DesiredVMCount不能超過{value}。 |
403 | QuotaExhausted.Configs.Networks.VPC.OppositeRouterType | The Configs.Networks.VPC.OppositeRouterType ({value}) is forbidden. | Configs.Networks.VPC.OppositeRouterType不允許取值{value}。 |
400 | MissingInstanceType | InstanceType is mandatory for this action. | 缺少InstanceType參數。 |
400 | InvalidInstanceType | Specified parameter InstanceType is not valid. | InstanceType參數取值不合法。 |
400 | MissingResourceType | ResourceType is mandatory for this action. | 缺少ResourceType參數。 |
400 | InvalidResourceType | Specified parameter ResourceType is not valid. | ResourceType參數取值不合法。 |
400 | Invalid{Parameter} | Specified parameter {Parameter} is not valid. | {Parameter}參數不合法。 |