【问题标题】:Packer Error while creating ami using hcl2: "Error querying AMI: InvalidAMIID.Malformed: Invalid id:"使用 hcl2 创建 ami 时出现 Packer 错误:“查询 AMI 时出错:InvalidAMIID.Malformed:ID 无效:”
【发布时间】:2021-12-16 14:04:52
【问题描述】:

我正在努力构建打包程序管道,该管道将使用市场 ami 来安装某些软件并创建一个 ami。我创建了运行良好的 json 模板,但根据打包程序的建议,我正在努力将其升级到 hcl2 模板。
当我运行 hcl2_upgrade 命令时。我看到一个 json 模板被转换为 .pkr.hcl 模板,但是在运行它时。我已经按照打包程序文档中的建议对模板进行了一些自定义。它给了我以下错误。

data "amazon-ami" "autogenerated_1"{
  access_key = "${var.aws_access_key}"
  filters = {
    root-device-type    = "ebs"
    virtualization-type = "hvm"
    name                = "**** Linux *"
  }
  most_recent = true
  region      = "${var.aws_region}" 
  owners      = ["${var.owner_id}"]
  secret_key  = "${var.aws_secret_key}"
}

when I am trying to consume this ami id in the source block It gives me error.
  ami_name                    = "${var.ami_name}"
  associate_public_ip_address = false
  force_deregister            = true
  iam_instance_profile        = "abc"
  instance_type               = "****"
  region                      = "${var.aws_region}"
  source_ami    = "{data.amazon-ami.autogenerated_1.id}"
  ssh_interface = "private_ip"
  ssh_username  = "user"
  subnet_id     = "subnet-********"
  vpc_id        = "vpc-***********"
}

错误详情如下:

amazon-ebs.pqr_ami:     status code: 400, request id: *********
Build 'amazon-ebs.pqr_ami' errored after 1 second 49 milliseconds: Error querying AMI: InvalidAMIID.Malformed: Invalid id: "{data.amazon-ami.autogenerated_1.id}" (expecting "ami-...")
    status code: 400, request id: ************

【问题讨论】:

    标签: amazon-web-services jenkins jenkins-pipeline terraform packer


    【解决方案1】:

    您的 AMI 实际上是一个字符串 source_ami = "{data.amazon-ami.autogenerated_1.id}"。应该是:

    source_ami    = "${data.amazon-ami.autogenerated_1.id}"
    

    或对于 HCL2:

    source_ami    = data.amazon-ami.autogenerated_1.id
    

    【讨论】:

    • 这是 Packer 而不是 TF,因此您可能需要修改例如“现代 TF”--> “HCL2”。
    • @MattSchuchard 谢谢。已修改。
    • 它有效,但是当我们使用 jenkins 部署模板时,它会给出另一个错误打包程序 validate template_abc.json.pkr.hcl 无法解析模板:解析 JSON 时出错:无效字符“v”正在寻找开头值在第 1 行,第 1 列(偏移量 1):1:v
    • 代码的开头是一个变量定义。我不确定加壳器是否验证 hcl2 模板。 @Marcin
    • @MattSchuchard 发布了另一个问题stackoverflow.com/questions/69815969/…。你能帮忙吗
    猜你喜欢
    • 2015-07-02
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多