【问题标题】:Softlayer API get Public Virtual Server offersSoftlayer API 获取公共虚拟服务器优惠
【发布时间】:2017-10-10 12:07:11
【问题描述】:

我正在尝试使用以下 python 代码从 Softlayer API 获取有关虚拟服务器价格的信息:

client['Product_Package'].getItems(id=835)

我正在尝试使用收到的结果来重新创建可在此网页上找到的风味产品: https://www.softlayer.com/cloud-computing/bluemix/Store/orderComputingInstance?language=en&cm_mc_uid=06493590598515064371141&cm_mc_sid_50200000=1506586953&cm_mc_sid_52640000=1506586953

基于网页,我注意到有几组风格(平衡、平衡本地存储、平衡本地存储 SSD、计算、内存),它们中的每一个都有一些特殊的规则,用于使用 ram 和硬盘驱动器进行 cpu 行进。

不幸的是,我在 Softlayer API 的报价中找不到这种逻辑(用于将 cpu 与内存和硬盘驱动器匹配)。是的,ram offer 中有 keyName 属性,其中包含单词“Balanced”、“Memory”、“HDD”和 CPU 名称,但从网页重新创建完整的报价是不够的。例如,我缺少在平衡本地存储风格中使用哪个 CPU 的信息,哪些硬盘可以用于哪些风格,有时在 keyName 属性中没有任何特殊名称的 ram 提供(我虽然它们应该只用于计算风格)被使用适合不同的口味。

哪些结果是正确的?在网页上还是通过 API?

我如何获得口味成分匹配的逻辑?

【问题讨论】:

    标签: web-scraping ibm-cloud-infrastructure


    【解决方案1】:

    订购这些口味的简单方法就是使用以下方法:

    http://sldn.softlayer.com/reference/services/softlayer_virtual_guest/createObject

    您只需要设置您想要的风味,您可以使用该方法查看所有可用的风味:

    http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest/getCreateObjectOptions

    在这里你可以看到一个例子:

    Softlayer API send SSD disk information?

    现在,如果您想使用 placeOrder 方法,为了获得您需要调用该方法的风味:

    http://sldn.softlayer.com/reference/services/softlayer_product_package/getactivepresets

    该方法将返回您想要的包的风味,然后在您的订单中设置该 presetId 请参阅http://sldn.softlayer.com/reference/datatypes/SoftLayer_Container_Product_Order_Virtual_Guest 了解更多信息,基本上您应该只在您的订单中添加此属性:

    presetId

    包的预设配置 ID。如果没有,则为必填项 提交任何价格。类型:整数

    由于风味(或预设)已经对某些项目(例如 CPU、RAM 或磁盘)进行了配置,因此您无需在订单中添加这些价格。

    【讨论】:

    • 这个端点返回我需要的风味:sldn.softlayer.com/reference/services/softlayer_product_package/… 当使用 mask='prices,locations' 调用它时,我还可以获得可用风味的价格和位置。但价格仅适用于 locationGroupId = ‘’,有没有办法获得所有可用的价格?或者我是否需要迭代来自 client['Product_Package'].getItems(id=835) 的结果以从 getActivePresets 收集每个预设的每个成分的每个位置的价格?
    • 我不知道控制门户是如何获得价格的,我猜他们会遍历项目,也许这个面具可以帮助你掩盖[prices[item]] 使用它你可以获得风味的项目然后调用 getItems 您可以查找这些物品以及您想要的位置的价格。 locationGroupId 在风味中为空的原因是因为它们是标准价格,并且它们适用于任何位置,一旦您调用 placeOrder 或 verifyOrder 方法,价格将根据您的订单位置发生变化,因此您可以使用 verifyOrder 来获取您订单的最终价格
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-02
    • 2021-11-22
    • 1970-01-01
    相关资源
    最近更新 更多