red*_*888 5 amazon-ec2 amazon-web-services aws-sdk terraform
我正在使用terraform获取官方centos ami:
data "aws_ami" "centos" {
most_recent = true
owners = ["679593333241"] # Centos.org
filter {
name = "name"
values = ["CentOS Linux 7 x86_64 HVM EBS 1708_01-*"]
}
}
Run Code Online (Sandbox Code Playgroud)
我需要所有者ID,在这种情况下,我需要找到所有者的方法是漫无目的地搜索google,直到有文章发表为止(他们没有说出他们是怎么得到的)。
如果我通过其市场页面启动ami,则它创建的ec2实例实际上为实例的“所有者”字段设置了我的个人ID-因此,我无法启动ec2实例,请检查所有者并以这种方式获取它。
为什么这么不可能呢?我一定想念一些明显的东西。
如果您想使用 AWS SDK;解决此问题的最简单方法如下所示:
aws ec2 describe-images --image-ids ami-0def3275 --region us-west-2
Run Code Online (Sandbox Code Playgroud)
当然,根据需要替换区域和AMI ID。
如果您想使用jq来解析它;你可以这样:
aws ec2 describe-images --image-ids ami-0def3275 --region us-west-2 | jq -r .Images[0].OwnerId
Run Code Online (Sandbox Code Playgroud)
您不一定需要所有者 ID,但将其包含在内显然是一个好主意,以确保您获得预期的 AMI。
鉴于您预先知道受信任的所有者,查找所有者 ID 的简单方法是查看 AWS 控制台中的 AMIs 表。
从 AWS 控制台,导航到EC2 > 图像 > AMIs。从搜索框左侧的下拉列表中选择“公共图片”过滤器。然后您可以搜索您想要的任何 AMI,所有者值显示在表中:
| 归档时间: |
|
| 查看次数: |
2194 次 |
| 最近记录: |