【问题标题】:Why new image is available from Portal, but not from SDK listing?为什么新图像可以从 Portal 获得,但不能从 SDK 列表获得?
【发布时间】:2023-03-31 03:13:02
【问题描述】:

我有 2 个 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 库创建新的虚拟机。 来自 Portal 和 SDK 的图像 A 一切都按预期工作。 对于图像 B,它仅适用于 Portal,但不适用于 SDK。 SDK 抛出“虚拟机镜像源无效”。消息。

进一步调试SDK调用发现Image B不在列表中,但在Portal列表中...

我注意到图像 A 和图像 B 之间的唯一区别是,在图像选项卡上,图像 A 的源设置为“-”,而图像 B 指向托管用于图像自定义的 VM 的云服务。并且删除 Cloud Service B 并没有将 Image B 的 Source 信息更改为“-”。

有人能说出为什么新图像可以从 Portal 中获得,但不能从 SDK 列表中获得吗?

【问题讨论】:

    标签: image azure sdk


    【解决方案1】:

    遗憾的是,ruby sdk 缺少该功能...您必须使用 RESTful API 来获取它们。

    请参阅HERE 了解详细信息,但我只想说,这里有一个粗略的 sn-p 代码可以帮助您进行操作:

    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 架构。

    【讨论】:

      猜你喜欢
      • 2018-03-09
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多