Amazon web services 使用EC2命令行工具选择免费层Amazon机器映像(AMI)

Amazon web services 使用EC2命令行工具选择免费层Amazon机器映像(AMI),amazon-web-services,ec2-ami,ec2-api-tools,Amazon Web Services,Ec2 Ami,Ec2 Api Tools,是否有任何方法可以使用EC2 CLI工具查询空闲层AMI ID?空闲层更多地是关于实例类型,而不是AMI 但是,您可以使用以下方式查询图像: aws ec2 describe-images 它返回(在我的例子中)45mb的响应。要缩小选择范围,请解析ResultingJSON并删除任何具有ProductCodes键的条目,这些条目都是市场条目。没有使用CLI直接查询“自由层”的方法,但如果您查看 仅查找Amazon托管的公共图像的命令示例: aws ec2描述图像——车主自助亚马逊 查看Ama

是否有任何方法可以使用EC2 CLI工具查询空闲层AMI ID?

空闲层更多地是关于实例类型,而不是AMI

但是,您可以使用以下方式查询图像:

aws ec2 describe-images

它返回(在我的例子中)45mb的响应。要缩小选择范围,请解析ResultingJSON并删除任何具有ProductCodes键的条目,这些条目都是市场条目。

没有使用CLI直接查询“自由层”的方法,但如果您查看

仅查找Amazon托管的公共图像的命令示例:
aws ec2描述图像——车主自助亚马逊


查看Amazon免费层页面和for
descripe images
,可以在免费层中找到图像。我喜欢准确地说,所以我使用上面的命令&
--filter
(按机器类型),直到找到与Amazon EC2 Linux t2.micro实例匹配的一个。

我是AWS的新手。我在使用aws ec2描述图像--filter(过滤器)选项时也遇到了困难

我转到页面,在做了一些实验之后,我为
aws ec2 descripe 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
与上面url站点的过滤器编辑框中给出的“资源属性”名称不同。

获取当前免费层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

资料来源:

有人愿意说为什么他们否决了我的问题吗?免费层不是“形象”的东西。自由层与机器规格有关。t1.micro通常是许多图像的“免费层”机器。一个示例aws cli命令将启动一台免费层计算机:aws ec2运行实例——映像id ami-8635a9b6——实例类型t1.micro——placement AvailabilityZone=us-west-2a——安全组您的_安全组_名称——密钥名称您的_密钥_名称虽然这个代码片段可以解决这个问题,但确实有助于提高帖子的质量。请记住,您将在将来为读者回答这个问题,而这些人可能不知道您的代码建议的原因