执行 SoftLayer_Product_Package::getActivePresets 时我得到了相同的值(我的意思是:“locationGroupId”= null)。
但是在查看快速服务器的订单配置后,我可以看到预设是预先建立/固定的配置,这似乎是使用“getActivePresets”显示的项目价格没有可供选择的位置的原因。这些 locationGroupId = null 的价格 ID 被视为“标准价格”,API 将在内部为客户切换价格。但建议先执行 verifyOrder 以查看想要的订单是否正常(费用可能会有所不同)。
例如在执行以下这个请求时:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Product_Package/200/getActivePresets.json?objectMask=mask [id,description,keyName,configuration.category, configuration.price,prices]
我们得到预先确定的价格(包装:200,预设:66):
* Item prices: Disk Controller (NoRAID) -- > price id: 32927
* server ("Single Intel Xeon E3-1270 v3 (4 Cores, 3.50 GHz)") --> price id: 37318
* RAM ("32 GB RAM") --> price id: 37360
* disk0 (“960 GB SSD (3 DWPD)”) --> price id: 50407
*disk1 ("960 GB SSD (3 DWPD)”) --> price id: 50407
在内部,API 将匹配这些价格和客户选择的位置。可能与这些价格匹配的位置是旧位置,例如:dal01、ams01、dal07 dal06、sng01、hou02、wdc01、SJC01。
但上述价格并不是每小时快速服务器配置的唯一项目。例如对于这个订单,我们需要更多的项目来配置:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Product_Order/verifyOrder
{
"parameters": [
{
"complexType": "SoftLayer_Container_Product_Order_Hardware_Server",
"quantity": 1,
"location": "SANJOSE",
"packageId": 200,
"useHourlyPricing": 1,
"presetId": 66,
"prices": [
{
"id": 37318 # Single Intel Xeon E3-1270 v3 (4 Cores, 3.50 GHz)
},
{
"id": 37360 # "32 GB RAM
},
{
"id": 44992 # "CentOS 7.x (64 bit)"
},
{
"id": 32927 # "Non-RAID Non-RAID"
},
{
"id": 50407 # disk0 - 960 GB SSD (3 DWPD)
},
{
"id": 50407 # disk1 - 960 GB SSD (3 DWPD)
},
{
"id": 34183 # "0 GB Bandwidth"
},
{
"id": 26737 # "100 Mbps Public & Private Network Uplinks"
},
{
"id": 33483 # "Unlimited SSL VPN Users & 1 PPTP VPN User per account"
},
{
"id": 34807 # "1 IP Address"
},
{
"id": 25014 # "Reboot / KVM over IP"
}
],
"hardware": [
{
"hostname": "myhostname",
"domain": "mydomain.com"
}
]
}
]
}
要获取这些商品价格,我们可以使用以下内容:
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Product_Package/200/getItemPrices?objectMask=mask[id,item[keyName,description],pricingLocationGroup[locations[id, name, longName]]]
在这个请求中,我们可以看到根据要选择的位置,有些项目可能有“locationGroupId <> null”
参考:
http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getItemPrices
http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getAllObjects
http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package
http ://sldn.softlayer.com/blog/cmporter/Location-based-Pricing-and-You
编辑
每个数据中心的快速配置服务器数量有限。即使我们去门户网站选择任何一个数据中心,也有一些情况在验证订单后会显示错误,即:
目前在法兰克福 2 中没有可用于包 #200 和预设配置 #66 的硬件。请选择其他数据中心。
这意味着该位置没有足够的硬件用于订单。似乎快速配置服务器的可用性订单仅在少数数据中心中,因此它们没有特定的位置组。例如,如果我们执行以下请求以了解可用的位置组定价,我们可以看到每个组有超过 1 个位置,并且快速供应订单可能仅适用于其中一个数据中心(不会接受其他订单)这些 DC)。
https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Location_Group_Pricing/getAllObjects?objectMask=mask[locations]
当使用 FastProvision 服务器并取消它们的客户时,他们会回到可用池中并再次成为“可订购”。
目前,这类订单正在使用“标准价格”。