如何使用 SoftLayer API 查找 EVault 的位置?

How to find location of an EVault using SoftLayer API?

我看到有 SoftLayer_Account::getEvaultNetworkStorage() 可以获取我的 EVault 存储列表。但是,使用我掌握的信息,我无法确定特定 EVault 的位置。 以下是我从 getEvaultNetworkStorage() 获得的信息类型:

   {
      "accountId" : 7xxx,
      "capacityGb" : 30,
      "createDate" : "2016-xxx",
      "guestId" : 14xxx,
      "hardwareId" : null,
      "hostId" : 14xxx,
      "id" : 83xxx,
      "nasType" : "EVAULT",
      "password" : "Bxxx",
      "serviceProviderId" : 1,
      "serviceResourceBackendIpAddress" : "ev-xxx.service.softlayer.com",
      "serviceResourceName" : "ev-xxx.service.softlayer.com",
      "storageTypeId" : "19",
      "upgradableFlag" : true,
      "username" : "IBMxxx"
   },

我也没有看到任何其他有用的对象过滤器来设置。

使用 SoftLayer_Network_Storage_Backup_Evault::getObject() 提供相同类型的信息,并且没有提供位置信息的 API。 我需要位置 ID 才能以编程方式订购 EVault 插件。

有什么想法吗?

尝试以下操作以使用掩码获取避难所位置:

Option 1:

https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Account/getEvaultNetworkStorage?objectMask=mask[id, serviceResourceName,guestId,billingItem[id,location]]

Method: GET

Option 2:

https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Network_Storage_Backup_Evault/[Evault_id]/getObject?objectMask=mask[billingItem[id,location]]

Method: GET

此外,要获得 Evault 订单的有效位置,我建议您使用以下请求:

https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Product_Package/0/getItemPrices?objectMask=mask[id,locationGroupId,item[id,keyName,description],pricingLocationGroup[locations[id, name, longName]]]&objectFilter={   "itemPrices": {     "item": {       "keyName": {         "operation": "*=EVAULT"       }     }   } }

Method: GET

注意:locationGroupId = null 的价格 ID 被视为 "a standard price",API 将在内部为客户切换价格。但我们建议先执行 verifyOrder 以查看想要的订单是否可以(费用可能会有所不同)。

要获取有关价格和位置的更多信息,请查看:

http://sldn.softlayer.com/blog/cmporter/Location-based-Pricing-and-You

参考文献:

http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getItemPrices

希望这些信息对您有所帮助。