有什么方法可以使用 EC2 CLI 工具查询免费层级 AMI ID?
4 回答
无法使用 CLI 直接查询“免费套餐”,但如果您查看亚马逊免费套餐页面上列出的标准,您可以确定哪些是免费套餐。
仅查找由 Amazon 托管的公共图像的命令示例:
aws ec2 describe-images --owners self amazon
查看亚马逊免费套餐页面和 的可能选项,describe-images
可以在免费套餐中找到一张图片。我喜欢准确地说,所以我使用上述命令 &--filter
按机器类型,直到找到与 Amazon EC2 Linux t2.micro 实例匹配的命令。
免费套餐更多的是关于实例类型,而不是 AMI。
但是,您可以像这样使用describe-images查询图像:
aws ec2 describe-images
这会返回(在我的情况下)一个 45mb 的响应。要缩小选择范围,请解析生成的 JSON 并删除任何具有 ProductCodes 键的条目,这些条目是市场条目。
获取当前的免费套餐 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
选项的困难。
我去了页面AMIs 页面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
describe-images 中给出的名称与上面网址的过滤器编辑框中给出的“资源属性”名称不同。