0

我的最终目标是获得亚马逊镜像的操作系统。当我做:

connection = Fog::Compute.new(provider: 'AWS',
                              aws_access_key_id: 'blah',
                              aws_secret_access_key: 'thing')
images = connection.describe_images('Owner' => 'self').body['imagesSet']

platform正如本文档所建议的那样,我返回的数据不包括。但是,我确实得到了如下值:

architecture: "x86_64",
imageType: "machine",
kernelId: "aki-825ea7eb",

如果我用谷歌搜索那个内核 ID,我会发现这个页面说它是 Linux。有没有一种方法可以kernelId通过 Fog 传递给 Amazon 并取回相关数据kernelId,例如linux

在单独的说明中,有时我的图像没有kernelId,那么 a 中是否还有其他字段<DescribeImagesResponse xmlns="http://ec2.amazonaws.com/doc/2012-12-01/">是操作系统的明确指标?

4

1 回答 1

0

如果您有使用http://thecloudmarket.com的内核 ID,这是一个解决方案。

将内核 ID 传递给 ruby​​ 中的变量。

    ker_id = imagesSet

    url = []
    url_0 = "http://thecloudmarket.com/image/"
    url_1 = "ker_id"
    url_2 = "#/definition"

    new_url = url_0 + url_1 _ url_2

有很多方法可以伪造这个 url,使它易于阅读。

然后使用 nokogiri 解析网页并将图像名称放回脚本中。我没有在文档中看到其他通知程序。

于 2013-08-20T17:28:39.060 回答