0

以前用于从 SoftLayer 进行 API 调用的 Python 代码现在会出错。

import SoftLayer

conn = SoftLayer.create_client_from_env(username='',api_key='')

allParents = conn.call('Account','getAllTopLevelBillingItems')

allParents[0] # returns the first billing_Item as a dict

它曾经可以工作,但现在出现以下错误消息:

result = conn['SoftLayer_Account'].getAllTopLevelBillingItems(mask=objectMask)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/SoftLayer/API.py", line 363, in call_handler
    return self(name, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/SoftLayer/API.py", line 331, in call
    return self.client.call(self.name, name, *args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/SoftLayer/API.py", line 227, in call
    return self.transport(request)
  File "/usr/local/lib/python2.7/dist-packages/SoftLayer/transports.py", line 164, in __call__
    raise exceptions.TransportError(0, str(ex))
SoftLayer.exceptions.TransportError: TransportError(0): [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
4

2 回答 2

1

这可能与使用 Requests 包时的这一 SSL InsecurePlatform 错误有关

Softlayer 记录了有关 SSL 错误的信息:

在 Python 2.7.9 以下的 Python 版本中,由于创建 SSL 连接的不安全性,请求已开始发出安全警告 (InsecurePlatformWarning)。要解决此问题,请升级到 Python 2.7.9+ 或按照此处的说明操作:https ://stackoverflow.com/a/29099439 。

请确保您使用的是 Python 2.7.9 或更高版本,然后重试

于 2016-02-10T17:57:39.113 回答
0

几个月前我发现如果安装了 python certifi 包,这将导致 SoftLayer API 流量无法通过证书验证。

我从来不知道为什么,我只是避免了创建这种依赖的包。就我而言,我试图安装花。

于 2016-02-27T22:45:43.810 回答