【问题标题】:AWS CLI filter to return unique list of the latests AMIs for a particular AMI nameAWS CLI 过滤器以返回特定 AMI 名称的最新 AMI 的唯一列表
【发布时间】:2020-10-29 02:57:52
【问题描述】:

我想使用 AWS CLI 来创建仅包含最新 AMI 名称的唯一列表

这是我当前的命令,它为每个服务返回多个 AMI 名称:

aws ec2 describe-images --owners "<ACCOUNT_ID>" --filters "Name=name,Values=${ami_name}*"  --query 'reverse(sort_by(Images, &CreationDate))[*].Name' --output table

示例输出:

-------------------------------------------
|             DescribeImages              |
+-----------------------------------------+
|  service_abc_500 (latest)               |
|  service_xyz_350 (latest)               |
|  service_abc_499                        |
|  service_abc_498                        |
|  service_xyz_349                        |

期望的输出:

-------------------------------------------
|             DescribeImages              |
+-----------------------------------------+
|  service_abc_500                        |
|  service_xyz_350                        |

给定服务的 AMI 名称将始终使用相同的前缀,唯一的区别是附加到 AMI 名称末尾的唯一 ID,即 _500_350

【问题讨论】:

    标签: amazon-web-services amazon-ec2 aws-cli amazon-ami


    【解决方案1】:

    您可以在查询中使用[-1] 而不是[*] 来仅检索最新项目。见:How to filter the output with the --query option

    这是文档中给出的示例:

    以下示例检索满足多个图像的列表 标准。然后它使用 --query 参数对输出进行排序 CreationDate,仅选择最近的。最后,它显示 该图像的 ImageId。

    $ aws ec2 describe-images \
        --owners amazon \
        --filters "Name=name,Values=amzn*gp2" "Name=virtualization-type,Values=hvm" "Name=root-device-type,Values=ebs" \
        --query "sort_by(Images, &CreationDate)[-1].ImageId" \
        --output text
    

    ami-00ced3122871a4921

    【讨论】:

    • 感谢您的回复。然而,这并不是我想要的。我已经能够获取最新的 AMI,但我希望一次获取一组前缀的最新 AMI。因此,我不想只返回一个最新的 AMI,而是一次获取最新的 AMI:service_1、service_2、service_3。此时似乎更容易创建一个脚本,该脚本将为我正在寻找的每个前缀运行此命令 X 次。再次感谢!
    • 正如您所说,每个服务都有一个循环的脚本可以工作。稍有不同的方法,您是否可以在每个 AMI 的最新版本中添加一个标签,然后将所有带有该标签的 AMI 拉回?
    • 这肯定行得通,而且从长远来看,随着新服务的添加,事情可能会变得更容易。
    猜你喜欢
    • 2016-02-03
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 2019-01-08
    • 2017-08-21
    • 1970-01-01
    • 2019-01-07
    • 2022-08-19
    相关资源
    最近更新 更多