首页 > 解决方案 > 获取 AWS 实例的最新 AMI ID

问题描述

我想为 AWS Linux 机器获取最新的 ami id,同时为自动扩展架构创建一个 ec2 实例。

我正在尝试使用cli 来获取图像类型,但如果我使用该命令aws,它会打印出很多信息。describe-images

我的要求是只获取图像 id,以便我可以使用它来创建启动配置或启动具有最新 ami-id 的实例。

标签: amazon-web-servicesamazon-ec2autoscaling

解决方案


最近鲜为人知的一项功能是能够使用 AWS Systems Manager Parameter Store 查询最新的 Amazon Linux AMI ID。AWS 计算博客

命名空间由两部分组成:

  • 参数存储前缀(树):/aws/service/ami-amazon-linux-latest/
  • AMI 名称别名:(示例)amzn-ami-hvm-x86_64-gp2

这些:

aws ec2 describe-images --owners amazon --filters "Name=name,Values=amzn*" --query 'sort_by(Images, &CreationDate)[].Name'

Get-EC2ImageByName -Name amzn* | Sort-Object CreationDate | Select-Object Name

可以改成:

aws ssm get-parameters --names /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 --region us-east-1 

Get-SSMParameter -Name /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2 -region us-east-1

另外,它可以在CloudFormation 模板中使用:

# Use public Systems Manager Parameter
 Parameters :
 LatestAmiId :
 Type : 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>'
 Default: ‘/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2’

Resources :
 Instance :
 Type : 'AWS::EC2::Instance'
 Properties :
 ImageId : !Ref LatestAmiId

推荐阅读