是否可以向使用 Packer 创建的 AWS AMI 添加包含已过滤的 source_ami 名称的标签?

And*_*riy 5 packer amazon-web-services amazon-ami

我正在使用Packer构建 AWS AMI 。源图像由过滤器定义source_ami_filter,源块看起来像

source "amazon-ebs" "test-image" {
  ami_name      = "Some AMI Name"
  instance_type = "t2.micro"
  region        = "eu-central-1"
  source_ami_filter {
    filters = {
      name                = "ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*"
      root-device-type    = "ebs"
      virtualization-type = "hvm"
    }
    most_recent = true
    owners      = ["099720109477"]
  }
  tags = {
//    source_ami_name = ...  # how to get it?
  }
  ssh_username = "ubuntu"
}
Run Code Online (Sandbox Code Playgroud)

如何从规范中获取所使用的源 AMI 的名称?

sol*_*tex 8

有一些共享信息变量,例如SourceAMIName

这意味着您可以通过执行以下操作获取源 AMI 名称并将其用作标签:

source_ami_name = "{{ .SourceAMIName }}"
Run Code Online (Sandbox Code Playgroud)

这是一个完整的示例:https ://www.packer.io/docs/builders/amazon/ebs#tag-example