有没有办法使用aws cli获取最新的Windows 2012R2基础AMI ID?
类似于Powershell中的Get-EC2ImageByName -Names WINDOWS_2012R2_BASE
。我想在Linux中使用它。
我尝试过使用AMI id
aws ec2 describe-images --owners amazon --filters "Name=name,Values=Windows_Server-2012-R2_RTM-English-64Bit-Base-*"
但感觉就像是黑客。有没有比在Powershell中更好的方法呢?
答案 0 :(得分:5)
您描述的“hack”是在AWS CLI中检索这些内容的正确方法。事实上,这就是PowerShell Tools Get-EC2ImageByName
在幕后所做的事情;它将原始AMI名称(由ShowFilter
参数公开)映射到预定义的名称模式,由AllAvailable
参数公开。
您可以通过列出ShowFilter
参数来查看此内容;第一个结果与您列出的名称值匹配:
C:/ > get-ec2imagebyname -ShowFilters
Windows_Server-2012-R2_RTM-English-64Bit-Base*
Windows_Server-2012-R2_RTM-English-64Bit-SQL_2014_SP1_Express*
Windows_Server-2012-R2_RTM-English-64Bit-SQL_2014_SP1_Standard*
Windows_Server-2012-R2_RTM-English-64Bit-SQL_2014_SP1_Web*
Windows_Server-2012-RTM-English-64Bit-Base*
...
要从AWS CLI返回最新的Windows 2012 R2 AMI ID,请按CreationDate对查询进行排序,并将其限制为仅包含最后一个结果。
示例:强>
aws ec2 describe-images \
--owners 'amazon' \
--filters 'Name=name,Values=Windows_Server-2012-R2_RTM-English-64Bit-Base*' \
--query 'sort_by(Images, &CreationDate)[-1].[ImageId]' \
--output 'text'
<强>输出:强>
ami-11e84107