Terraform局部值

2024-05-07 23:28
文章标签 局部 terraform

本文主要是介绍Terraform局部值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Terraform输入变量用于从外部传递值到Terraform模块内部进行使用,如果把Terraform代码看作是一个函数的话,Terraform输入变量就是函数的输入参数。
Terraform局部值则用于在Terraform模块内部定义反复使用的常量值或表达式,如果把Terraform代码看作是一个函数的话,Terraform局部值就是函数内部的局部变量。
Terraform局部值只能在Terraform模块内部使用。

局部值定义

局部值使用locals块定义:

locals {service_name = "form"owner        = "Community Team"
}

在一个locals块中可以定义多个局部值,当然在同一个Terraform模块中可以定义多个locals块。
locals块中定义的局部值可以引用一个常量,也可以引用输入变量值,还可以引用资源属性或其他的局部值,如下示例:

locals {# 局部值引用的是资源属性instance_ids = concat(aws_instance.blue.*.id, aws_instance.green.*.id)
}

如上示例,在locals块中定义的局部值引用的是资源属性,甚至还使用了函数concat()

如下示例在locals块中引用的则是其他局部值:

locals {common_tags = { # 这个局部值是一个对象类型,它在属性中引用了其他局部值Service = local.service_nameOwner   = local.owner}
}

局部值引用

引用局部值的语法:local.<NAME>,如:

# 在资源定义中引用局部值
resource "aws_instance" "example" {tags = local.common_tags
}

注: 局部值定义在locals块中,但是引用局部值使用的是local

何时使用局部值

局部值可以帮助我们避免写重复复杂的表达式,提升代码的可读性,但是过度使用局部值也会增大代码的复杂度,使得代码的维护者更难理解所使用的表达式和值。
所以,适度使用局部值仅用于反复引用同一个复杂的表达式或常量值的场景,这样将来在修改表达式时会变得相当轻松。

这篇关于Terraform局部值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/968694

相关文章

AI基础 L9 Local Search II 局部搜索

Local Beam search 对于当前的所有k个状态,生成它们的所有可能后继状态。 检查生成的后继状态中是否有任何状态是解决方案。 如果所有后继状态都不是解决方案,则从所有后继状态中选择k个最佳状态。 当达到预设的迭代次数或满足某个终止条件时,算法停止。 — Choose k successors randomly, biased towards good ones — Close

Matlab中BaseZoom()函数实现曲线和图片的局部放大

BaseZoom工具下载链接: 链接:https://pan.baidu.com/s/1yItVSinh6vU4ImlbZW6Deg?pwd=9dyl 提取码:9dyl 下载完之后将工具包放置合适的路径下,并在matlab中“设置路径”中添加相应的路径; 注:可以先运行如下图片中的语句,看看是否报错;如果报如下错误,说明matlab未安装“Image Processing Toolbox”工

【C++】【日志贴】浅谈标准库类型string、vector及C风格字符串在全局和局部作用域中默认初始值情况

平时练习发现这个问题,记录一下。 C风格字符串在全局和局部作用域中初始值情况【空字符+未定义的字符】由于内存没有初始化造成的对于栈,内存如果没有初始化,则会出现“烫烫烫烫烫烫”;对于堆,内存如果没有初始化,则会出现“屯屯屯屯屯”;有时候数组没有结束符,输出数组也会有这些汉字的出现,就是因为没有结束符占用了后面的空闲的内存块即没有初始化的内存块 标准库类型string

YOLOv8改进实战 | 引入混合局部通道注意力模块MLCA(2023轻量级)

YOLOv8专栏导航:点击此处跳转 前言 YOLOv8 是由 YOLOv5 的发布者 Ultralytics 发布的最新版本的 YOLO。它可用于对象检测、分割、分类任务以及大型数据集的学习,并且可以在包括 CPU 和 GPU 在内的各种硬件上执行。 YOLOv8 是一种尖端的、最先进的 (SOTA) 模型,它建立在以前成功的 YOLO 版本的基础上,并引入了新的功能和改进

flutter key和globalkey如何使用及局部刷新

key和globalkey的使用,在实际开发中还是经常使用到的,尤其是globalkey设置到局部刷新会经常用到,例如TextView局部刷新等,还有其它任何控件需要局部刷新的也可以通过globalkey来实现,下面会有详细介绍。 key是标识widget的唯一性,组件能不能复用和更新主要通过key和组件的类型(runtimeType)来判断,如果key不传,则会判断组件的类型,globalke

带你速通C语言——局部与全局变量(15)

全局变量和局部变量在 C 程序设计中具有非常重要的角色,它们决定了变量的可见性、生命周期和作用域。理解它们之间的区别是编写有效和可维护代码的关键。 1.局部变量 局部变量是在函数或代码块内部定义的变量。它们的生命周期仅限于包含它们的代码块或函数体: 作用域:局部变量只在定义它们的函数或代码块内部可见。生命周期:当函数调用结束后,局部变量所占用的内存被释放。初始化:局部变量不会自动初始化

vue学习十一(全局局部组件、prop传不同值、 v-bind 动态赋值、单向数据流、prop校验)

文章目录 全局注册局部注册dom模板解析注意事项用 Prop 传递不同值类型用 Prop通过 v-bind 动态赋值用 Prop传递对象的所有属性用 Prop传递对象数组用 Prop传入一个数字单向数据流Prop 验证 全局注册 我们只用过 Vue.component 来创建组件 这些组件是全局注册的。也就是说它们在注册之后可以用在任何新创建的 Vue 根实例 (new Vu

LBP(局部二值模式)

LBP 英文全称是Local Binary Pattern,LBP是一种有效的描述图像局部纹理特征的descriptor,它是由T.Ojala在1994年提出来的,用于纹理特征提取,经过其改善,具备了旋转不变性和灰度不变性(这里所谓的灰度不变性,个人觉得就是单调光照不变性)。如今广泛运用于纹理分类、纹理分割、人脸图像分析等领域。 最初的LBP特征设计 在3x3的窗口内,以窗口中心像素为阈

vue移动端UI框架——Vant全局引入vs局部引入

全局引入 1.在main.js中全局引入全部vant组件 优点:可以在所有vue文件的template中定义所需组件缺点:打包发布时会增加包的大小,Vue的SPA首屏打开时本来就有些慢,同时不能在js中使用类似Toast功能的组件 代码如下: // main.jsimport Vant from 'vant'import 'vant/lib/vant-css/index.css'Vue