我正在使用Packer查询AWS以查找要用作源AMI的AMI。我想通过标签找到AMI。这是我的代码。
"source_ami_filter": {
"filters": {
"tag": "type=Ubuntu Base"
},
"owners": ["self"],
"most_recent": true
}
收到此错误
amazon-ebs: Error querying AMI: InvalidParameterValue: The filter 'Filter.tag' is invalid
我不能为我的生活弄清楚如何格式化该过滤器。任何帮助将不胜感激。
答案 0 :(得分:3)
您的示例代码非常接近,但应在filters键中指定标记名称而不是值。
对代码进行此修改应该可以找到带有"类型"的AMI。标签包含值" Ubuntu Base":
"source_ami_filter": {
"filters": {
"tag:type": "Ubuntu Base"
},
"owners": ["self"],
"most_recent": true
}
source_ami_filter的Packer文档解释了" DescribeImages文档中描述的任何过滤器均有效。"
然后,DescribeImages的AWS EC2文档显示给定标记中包含的值的过滤器应使用标记:key = value 格式:
tag:key = value - 分配给资源的标记的键/值组合。在过滤器名称中指定标记的键,并在过滤器值中指定标记的值。例如,对于标签Purpose = X,请指定tag:过滤器名称的用途和过滤器值的X.