我有两个Windows镜像:
图A-创建于几个月前
图B-创建于今天
这里描述了我用来创建图像B的步骤:http://blogs.technet.com/b/keithmayer/archive/2013/01/17/step-by-step-templating-vms-in-the-cloud-with-windows-azure-and-powershell-31-days-of-servers-in-the-cloud-part-17-of-31.aspx
我使用这些镜像通过Ruby SDK库创建新的VM。对于来自Portal和SDK的图像A,一切都如预期的那样工作。在图像B的情况下,它只能从Portal工作,而不能从SDK工作。SDK抛出“虚拟机映像源无效”。消息。
SDK调用的进一步调试显示图像B不在列表中,但它在门户上的列表中...
我注意到镜像A和镜像B之间唯一的区别是,在镜像选项卡上,镜像A的Source设置为"-“,而镜像B指向用于镜像定制的VM所在的云服务。删除云服务B不会将镜像B的源信息更改为"-“。
有人能说出为什么新图像可以从门户网站获得,但不能从SDK列表中获得吗?
发布于 2014-08-22 08:01:11
遗憾的是,ruby sdk缺少该功能……您必须使用RESTful应用程序接口来获取它们。
有关详细信息,请参考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放在上述url中指定的位置。
此外,这(谢天谢地)将给你一个只有你的图片的列表……您仍然使用sdk来获取其余部分。请参阅上面的链接,查看响应的xml模式。
https://stackoverflow.com/questions/23665650
复制相似问题