gpt4 book ai didi

amazon-web-services - 在 TerraForm 的中心部分定义标签

转载 作者:行者123 更新时间:2023-12-04 23:15:11 25 4
gpt4 key购买 nike

我正在玩一些 Terraform,我想知道这是否可能。最佳做法是为您在 AWS 上创建的每个资源分配标签(例如)。因此,您首先要做的是提出一个标记策略(例如,哪个业务部门、应用程序的名称、负责它的团队……)。

但是,在 Terraform 中,这意味着您必须为每个资源重复每个标签 block 。这不是很方便,如果您想更新 1 个标签名称,您必须更新您创建的每个资源。

例如:

resource "aws_vpc" "vpc" {
cidr_block = "${var.cidr}"

tags {
Name = "${var.name}"
Project = "${var.projectname}"
Environment = "${var.environment}"
}
}

如果我想在该 VPC 中创建具有相同标签的子网和 EC2,我必须重复该标签 block 。如果我想稍后更新 1 个标签名称,我必须单独更新每个资源,这非常耗时且乏味。

有没有可能在一个集中的位置创建一个标签 block 并引用它?我在考虑模块,但这似乎不符合模块的定义。

最佳答案

您也可以从 0.10.3 版开始尝试 local values。它允许您为表达式分配一个符号本地名称,以便它可以在配置中多次使用而无需重复。

# Define the common tags for all resources
locals {
common_tags = {
Component = "awesome-app"
Environment = "production"
}
}

# Create a resource that blends the common tags with instance-specific tags.
resource "aws_instance" "server" {
ami = "ami-123456"
instance_type = "t2.micro"

tags = "${merge(
local.common_tags,
map(
"Name", "awesome-app-server",
"Role", "server"
)
)}"
}

关于amazon-web-services - 在 TerraForm 的中心部分定义标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43980946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com