通过雾使AWS AMI公开

时间:2016-08-02 10:14:52

标签: amazon-web-services fog

我正在使用雾来运行实例创建一个ami:

@fog = Fog::Compute.new(
        :provider => 'AWS',
        :region => 'us-west-2',
        :aws_access_key_id => aws_access_key,
        :aws_secret_access_key => aws_secret_key
    )
@fog.create_image(instance.identity,image_name,image_description)

我可以使用雾来公开这个吗?

2 个答案:

答案 0 :(得分:1)

我已经找到了如何操作,我需要在上面的代码中添加一行:

@fog.modify_image_attribute(image_id,{'Add.Group' => ['all']}

如果图片有状态'待定' (就像我的情况一样),它会抛出一个异常,所以最后的修改是:

@fog = Fog::Compute.new(
        :provider => 'AWS',
        :region => 'us-west-2',
        :aws_access_key_id => aws_access_key,
        :aws_secret_access_key => aws_secret_key
    )
data = @fog.create_image(instance.identity,image_name,image_description)

image_id = data.body['imageId']

print 'Waiting ami to come up'

begin
  @fog.modify_image_attribute(image_id,{'Add.Group' => ['all']})
rescue
  print(".")
  sleep(10)
  retry
end

puts 'READY!'

答案 1 :(得分:-1)

我不知道雾的语法,但为了公开您的AMI图像,您可以在AMI图像上使用ec2:ModifyImageAttribute操作。

http://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html

在这种情况下,您可以指定您的AMI图像ID以及添加"启动权限"到了#34;所有"基。

AWS CLI中modify-image-attribute的文档中有一个公开设置AMI图像的示例:

http://docs.aws.amazon.com/cli/latest/reference/ec2/modify-image-attribute.html

aws ec2 modify-image-attribute --image-id ami-5731123e 
  --launch-permission "{\"Add\": [{\"Group\":\"all\"}]}"