有没有办法使用 EC2 CLI 工具查询免费套餐 AMI ID?
没有办法使用 CLI 直接查询"免费套餐",但如果您查看亚马逊免费套餐页面上列出的条件,您可以确定哪些是免费套餐。
用于仅查找由 Amazon 托管的公共映像的命令示例: aws ec2 describe-images --owners self amazon
查看亚马逊免费套餐页面和describe-images
的可能选项,可以在免费套餐中找到图像。我喜欢精确,所以我使用上面的命令并按机器类型--filter
,直到找到与 Amazon EC2 Linux t2.micro 实例匹配的那个。
免费套餐更多地关注实例类型,而不是 AMI。
但是,您可以使用如下描述图像查询图像:
aws ec2 describe-images
这将返回(在我的情况下)45mb响应。若要缩小选择范围,请解析结果 JSON 并删除具有产品代码密钥的任何条目,这些条目是市场条目。
获取当前的免费套餐 Amazon Linux 2 AMI
aws ec2 describe-images
--owners amazon
--filters "Name=name,Values=amzn2-ami-hvm-2.0.????????.?-x86_64-gp2" "Name=state,Values=available"
--query "reverse(sort_by(Images, &Name))[:1].ImageId"
--region sa-east-1
--output text
来源:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html
我是 AWS 的新手。 我也很难选择aws ec2 describe-images --filter
选项。
我转到页面 AMI 页面,经过一些实验后,我想出了以下命令行,用于aws ec2 describe-images
我手头的要求。
$ aws ec2 describe-images --owner amazon --filter "Name=description,Values=*Ubuntu*" "Name=owner-alias,Values=amazon" "Name=architecture,Values=x86_64" "Name=image-type,Values=machine" "Name=root-device-name,Values=/dev/sda1" "Name=root-device-type,Values=ebs" "Name=virtualization-type,Values=hvm"
我将输出通过管道传输到jq '.Images|length'
,并看到结果数量随着每个新过滤器参数的添加而减少。
请注意,描述图像中给出的Name=xxxxx
与上面网址的过滤器编辑框中给出的"资源属性"名称不同。