使用 EC2 命令行工具选择免费套餐 Amazon 系统映像 (AMI)



有没有办法使用 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与上面网址的过滤器编辑框中给出的"资源属性"名称不同。

最新更新