我想通过Python API通过映像创建VM。但是,我得到了错误:
"SoftLayer.exceptions.SoftLayerAPIError: SoftLayerAPIError(SoftLayer_Exception_InvalidValue):
Invalid value provided for 'blockDeviceTemplateGroup.globalIdentifier'.
A valid global identifier is required for a template."
我的代码如下:
import SoftLayer
from SoftLayer import VSManager
from pprint import pprint as pp
USERNAME = 'SLXXXXX'
API_KEY = 'bdf4f3124810a9e685a57xxxxxxxxxxxxxxxxxxxxxxx'
client = SoftLayer.create_client_from_env(username=USERNAME, api_key=API_KEY)
mgr = SoftLayer.VSManager(client)
vsi = mgr.create_instance( hourly=True, image_id=2221859, hostname='p01', domain='esm.com', cpus=1 , memory=1, datacenter='hkg02')
print vsi
如果我使用Python客户端,并运行以下命令
slcli vs create --billing=hourly --image=2221859 --hostname=p01 --domain=esm.com --cpu=1 --memory=1 --datacenter=hkg02
我可以创建VM。
但是通过使用python程序,我无法创建它。
图像的细节是:
:....................:......................................:
: name : value :
:....................:......................................:
: id : 2221859 :
: global_identifier : 59570b71-0a3e-4327-a89a-3dfc479ba997 :
: name : tinyproxy :
: status : Active :
: active_transaction : - :
: account : 792321 :
: visibility : Private :
: type : System :
: flex : False :
: note : None :
: created : 2019-04-18T03:04:59-05:00 :
: disk_space : 1.50G :
: datacenters : hkg02 :
:....................:......................................:
答案 0 :(得分:0)
您得到的错误是因为您在python程序请求中使用的是图像ID,而不是“ globalIdentifier”。
尝试像下面的示例一样发送“ globalIdentifier”:
vsi = mgr.create_instance( hourly=True, image_id='59570b71-0a3e-4327-a89a-3dfc479ba997', hostname='p01', domain='esm.com', cpus=1 , memory=1, datacenter='hkg02')