Terraform 是否可以在资源本身中引用资源名称
我希望在资源本身内部使用资源名称,以避免字符串重复和复制/粘贴错误Terraform 是否可以在资源本身中引用资源名称,terraform,Terraform,我希望在资源本身内部使用资源名称,以避免字符串重复和复制/粘贴错误 resource "aws_instance" "bastion-euw3-infra-01" { ami = "ami-078db6d55a16afc82" instance_type = "t2.micro" key_name = "sylvain" user_data = te
resource "aws_instance" "bastion-euw3-infra-01" {
ami = "ami-078db6d55a16afc82"
instance_type = "t2.micro"
key_name = "sylvain"
user_data = templatefile("./scripts/cloudinit.yaml", {
hostname = "bastion-euw3-infra-01"
tailscale_authkey = var.tailscale_authkey
})
network_interface {
device_index = 0
network_interface_id = aws_network_interface.bastion-euw3-infra-01.id
}
tags = {
Name = "bastion-euw3-infra-01"
Environment = "infra"
}
lifecycle {
ignore_changes = [user_data]
}
}
基本上,我想用某种var替换资源中的“bastion-euw3-infra-01”
,例如:
resource "aws_instance" "bastion-euw3-infra-01" {
...
user_data = templatefile("./scripts/cloudinit.yaml", {
hostname = ___name___
tailscale_authkey = var.tailscale_authkey
})
...
tags = {
Name = ___name___
Environment = "infra"
}
...
}
terraform是否提供了一种实现这一点的方法?这正是它的用途。我想在它自己的定义中使用terraform资源的名称。我不知道输入变量在这里如何帮助我。这在目前是不可能的-请参阅。如果你真的需要做这样的事情,考虑创建一个本地值并在标签和主机名字段中使用它。这正是要做的。我想使用它自己定义中的TrRAFRATE资源的名称。我不知道输入变量在这里如何帮助我。这在目前是不可能的-请参阅。如果你真的需要这样做,考虑创建一个本地值并在标签和主机名字段中使用它。