使用Packer查询AWS

时间:2017-05-26 19:42:54

标签: amazon-web-services packer

我正在使用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

我不能为我的生活弄清楚如何格式化该过滤器。任何帮助将不胜感激。

1 个答案:

答案 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.