我有2张Windows图片:
Image A - 几个月前创建
图片B - 今天创建
我使用这些图像使用Ruby SDK库创建新的VM。 所有这些都与Portal和SDK中的Image A一样正常工作。 对于图像B,它仅适用于Portal,但不适用于SDK。 SDK抛出“虚拟机映像源无效”。消息。
SDK调用的进一步调试显示,图像B不在列表中,但它出现在Portal的列表中......
我在图像A和图像B之间注意到的唯一区别是,在图像选项卡上,图像A将源设置为“ - ”,图像B指向云服务,其中托管了用于图像自定义的VM。删除Cloud Service B并未将图像B的源信息更改为“ - ”。
有人可以说明为什么Portal可以获得新图像,但不能从SDK列表中获取吗?
答案 0 :(得分:0)
遗憾的是,ruby sdk缺少这个功能......你必须使用RESTful API来获取它们。
有关详细信息,请参阅HERE,但只需说明一下,这里有一段粗略的代码,可以帮助您:
def get(uri)
uri = URI.parse(uri)
pem = File.read('/path/to/management_cert')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
http.cert = OpenSSL::X509::Certificate.new(pem)
http.key = OpenSSL::PKey::RSA.new(pem)
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
request = Net::HTTP::Get.new(uri.request_uri)
request['x-ms-version'] = '2014-06-01'
request['Content-Length'] = 0
http.request(request)
end
以下是如何调用上述方法(特定于列出图像)...
get 'https://management.core.windows.net/<subscription-id>/services/vmimages'
请务必将您的订阅ID放在上面网址中的注明位置。
另外,这(谢天谢地)会给你一个只有你的图片的列表......你仍然使用sdk来完成剩下的工作......请参阅上面的链接查看响应的xml架构。