【问题标题】:Make AWS AMI public by fog通过雾公开 AWS AMI
【发布时间】:2016-08-02 10:14:51
【问题描述】:

我正在使用雾从正在运行的实例创建一个 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)

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

【问题讨论】:

  • 您是否遇到任何错误?
  • ami创建正常,但默认是私有的。

标签: amazon-web-services fog


【解决方案1】:

我已经找到方法了,我需要在上面的代码中添加一行:

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

如果图片的状态是'pending'(比如我的情况),它会抛出异常,所以最后的修改是:

@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!'

【讨论】:

    【解决方案2】:

    我不知道雾语法,但是要公开您的 AMI 映像,您可以对您的 AMI 映像使用 ec2:ModifyImageAttribute 操作。

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

    在这种情况下,您将指定您的 AMI 映像 ID,同时将“启动权限”添加到“所有”组。

    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\"}]}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      相关资源
      最近更新 更多