首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果不存在变量/本地值,则分配提供的值

如果不存在变量/本地值,则分配提供的值
EN

Stack Overflow用户
提问于 2022-10-26 10:52:04
回答 1查看 35关注 0票数 0

我想将disk_size设置为这样的操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
resource "google_compute_disk" "terraform-additional-persistent-disk" {
    name = "terraform-additional-persistent-disk"
    zone = local.zone
    type = local.default_disk_type
    size = exists(local.default_disk_size) ? local.default_disk_size : 50
    image = local.default_ubuntu_image
    labels = {
        created_by = "terraform"
    }
}

但是,我无法在Terraform中找到一个exists函数。主要目的是获取变量/本地值(如果存在的话),如果变量/本地值未在任何地方声明,则以我传递的值作为第二个参数。

我一直在检查其他问题,比如1,但是cantry函数都没有帮助我实现我的目标。我将始终得到A local value with the name "default_disk_size" has not been declaredAn input variable with the name "default_disk_size" has not been declared (取决于我是使用不存在的local还是var)。

我甚至尝试运行以下代码,但是如果没有设置变量/本地,则始终会引发异常。是否有一种不显式声明默认值为null/""的变量来实现这一目标的方法?

谢谢!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
resource "google_compute_disk" "terraform-additional-persistent-disk" {
    name = "terraform-additional-persistent-disk"
    zone = local.zone
    type = local.default_disk_type
    size = merge({sizee=50}, {sizee = local.default_disk_sizee})["sizee"]
    image = local.default_ubuntu_image
    labels = {
        created_by = "terraform"
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-26 11:22:41

我认为,在创建此资源时,输入变量和局部变量可能存在,也可能不存在,就像它们是系统环境变量之类的。但是,在Terraform中,必须在与声明.tf的文件相同的文件夹中的一个google_compute_disk.terraform-additional-persistent-disk文件中显式声明这些内容。

在Terraform的语法中,不可能在运行时动态显示局部变量或输入变量,它们必须在代码中提前声明。他们将永远存在。

如果希望允许使用Terraform代码的人传递变量或不传递变量,则必须显式声明变量,并给它一个默认值。然后,使用您的Terraform代码的人可以选择性地覆盖该默认值。如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
variable "disk_size" {
  type        = number
  default     = 50
  description = "The size of the additional persistent disk"
}

resource "google_compute_disk" "terraform-additional-persistent-disk" {
    name = "terraform-additional-persistent-disk"
    zone = local.zone
    type = local.default_disk_type
    size = var.disk_size
    image = local.default_ubuntu_image
    labels = {
        created_by = "terraform"
    }
}

然后,当有人使用您的Terraform代码时,如果他们不为disk_size输入变量指定一个值,则将使用50的默认值,但是如果他们确实指定了什么,那么他们指定的值将被使用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74212872

复制
相关文章
ionic莫名其妙的“cordova/platform_metadata”
我的Cordova升级到8已经很久了,而且在此环境下原有的项目跑得好好的,所以别人说有问题需要把Corodva降级到7.1或者7.0时,我不置可否。
IT晴天
2018/08/20
6300
莫名其妙的噪声都是怎么来的?
这几天心里颇不宁静,今晚在院子里坐着乘凉,忽然想起往日一同攻坚的战友,在这满月的光里,该是另一番样子吧。
工程师看海
2023/05/24
1660
莫名其妙的噪声都是怎么来的?
一次莫名其妙的故障……
前几天,我看到新闻,说是日本、加拿大等地接连爆出通信网络故障,引发了大规模的网络中断。心惊之余,我也想起,就在不久前,我也遇到了一个非常诡异的网络故障,差点引发重大事故。
鲜枣课堂
2022/10/05
3310
关于对象莫名其妙的面试题
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> </body> </html> <script> //首先,创建a对象 var a = {n:1}; console.log("输出a此时的状态"); console.log(a); //把对象a的引用地址,赋值给变量b,这个时候,b指针指向对象a的物理地址,就是引用
李才哥
2019/07/10
2480
关于对象莫名其妙的面试题
网站数据库莫名其妙的掉了?
因为本站站长的服务器不是很大,中规中矩,但这里最令我烦心的是,随便测压,服务器的数据库就会嗝屁。 最近云主机的服务器(CentOS)的数据库(MySQL 5.6.50)无故中断连接,导致部分网站无法访问,这个问题说大不大,说小不小,主要是影响了网站用户的体验,对于搜索引擎来说也不够友好,所以是一个必须处理的问题。
鸣奔博客
2023/03/23
6080
网站数据库莫名其妙的掉了?
姿态估计与行为识别(行为检测、行为分类)的区别[通俗易懂]
姿态估计和行为识别作为计算机视觉的两个领域,对于新人来说,较为容易弄混姿态估计和行为识别两个概念。
全栈程序员站长
2022/06/24
2.7K0
网页的行为
总第62篇 本篇为爬虫基础知识第三篇,JavaScript篇,JavaScript是描述网站行为的,是为了增加与用户的交互,前两篇传送地址: 网页是怎么构成的? 网页的修饰 01|JavaScript是什么: JavaScript 是一种轻量级的编程语言。 JavaScript 是可插入 HTML 页面的编程代码。 JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行,以此来增加HTML页面的交互性。 02|JavaScript怎么用: 1、HTML 中的脚本放在<script>和<
张俊红
2018/04/11
1.4K0
网页的行为
[Silverlight动画]转向行为 - 追捕行为
对于追捕行为,它非常类似寻找行为。其实追捕的最后一个动作就是调用寻找。追捕的本质是预测目标所要到达的位置并事先赶到。 那么,该如何预测目标的位置呢?其实是以目标的当前速度不变为前提,算出未来一段时刻后目标所在的位置。但是需要计算多久的未来才合适呢?我们把这 段时间叫做预测时间(look ahead time)。如果算到很久以后(较长的预测时间)可能就会超越目标,如果只往后算一点点(较短的预测时间)可能仍然落后于目标。而实际上,寻找行为就是一个预测时间为零的追捕行为。 一个策略是基于两机车间的距离来判断预测时
用户1172164
2018/01/16
1.2K0
[Silverlight动画]转向行为 - 寻找行为
寻找行为只是把机车移动到指定点。就像这样: public void seek(Vector2D target) { Vector2D desiredVelocity = target.subtract(_postion); desiredVelocity.normalize(); desiredVelocity = desiredVelocity.multiply(_maxSpeed);
用户1172164
2018/01/16
1.2K0
win10总是莫名其妙卡死怎么解决
win10系统频繁死机怎么办呢?使用电脑时出现最多的问题就是运行卡顿,死机了。虽然有些和我们使用习惯有关,但是最大的影响因素还是软件兼容性以及硬件问题。今天,我就将解决方法分享给你们 win10系统是
用户8002245
2020/12/31
18.9K0
[Silverlight动画]转向行为 - 躲避行为
躲避就是追捕的反行为。就像追捕类似于寻找,躲避类似于避开。 本质上讲,是预测出机车将要去到的位置并远离它。在这里所有的原则都和追捕相同。实际上,就连实现都几乎一模一样,除了最后一行用避开代替寻找: public void evade(Vehicle target) { double lookAheadTime = position.dist(target.position) / _maxSpeed; Vector
用户1172164
2018/01/16
1.1K0
[Silverlight动画]转向行为 - 到达行为
到达行为在很多场合都可以被当作是寻找行为。实际上,它们之间的算法和处理方式都一样。唯一不同的是,在到达模式中,一辆机车在到达目标的某一距离时,会变成一种精确模式慢慢地靠近目标点。 为了了解到达行为的必要性,可以先运行一下SeekTest类,然后移动鼠标到某处让机车过来“抓住”它。会看到机车快速的越过了鼠标,接着它发现过头了,又返回来,还是过头了....于是会一直循环下去。这是因为机车始终保持着最大速度迈向目标,哪怕离目标只有几像素。 到达行为通过减速接近目标,解决了这个问题: public
用户1172164
2018/01/16
1.1K0
[译] 解决 iOS 15 上 APP 莫名其妙地退出登录[译] 解决 iOS 15 上 APP 莫名其妙地退出登录
在 iOS 15 公开推出后, 我们开始从用户端收到反馈报告:在打开我们的应用程序(Cookpad) 时他们被莫名其妙的反复退出到登录页。非常令人惊讶的是,这并不是我们在测试 iOS 15 beta 版的时候发现的问题。
韦弦zhy
2021/12/10
1.6K0
[译] 解决 iOS 15 上 APP 莫名其妙地退出登录[译] 解决 iOS 15 上 APP 莫名其妙地退出登录
带团队:只有人的行为才能影响行为
上级想要下级改变,只有通过自己的行为才能改变下属。我原来写过一篇文章,说管理者如何带团队。说白了就是以身作则。但这里在落地过程中会遇到一些问题。以下六项是需要注意的。
石云升
2022/08/25
4360
[Silverlight动画]转向行为 - 避开行为
避开行为与寻找行为彻底相反。实际上,除了代码最后一行用相减代替了相加以外,其它都一样。 public void flee(Vector2D target) { Vector2D desiredVelocity = target.subtract(_postion); desiredVelocity.normalize(); desiredVelocity = desiredVelocity.multiply(_maxSpeed); Vector2D force = des
用户1172164
2018/01/16
9550
[Silverlight动画]转向行为 - 漫游行为
漫游行为就像它的名字一样,角色在场景中毫无目的的移动。这通常用来模拟巡视和觅食,也有纯粹是为了漫游而漫游的。 漫游行为在实现上不像听起来那么容易。简单的使用随机而产生的布朗运动,会让角色感觉像是一个有神经病的傻瓜。我们需要更自然更平滑的感觉。有个办法,通常 设想在角色前方有个圆,然后把圆上任意一点作为目标,每次更新都向这个随机点移动。由于目标点总是落在假象的圆上,所以转向力永远不会一下子就变化很大。 有几个参数可以调整出不同的漫游的风格:圆的尺寸,圆离开角色的距离,目标点的随机范围。 漫游函数:
用户1172164
2018/01/16
1.1K0
golang 的channels 行为
当我第一次使用 Go 的 channels 工作的时候,我犯了一个错误,把 channels 考虑为一个数据结构。我把 channels 看作为 goroutines 之间提供自动同步访问的队列。这种结构上的理解导致我写了很多不好且结构复杂的并发代码。
李海彬
2018/10/08
9920
golang 的channels 行为
delete的奇怪行为
F的实例拥有一个value属性,但不希望在new的时候就初始化属性值(因为这个值不一定用得到,而且计算成本比较高,或者new的时候还不一定能算出来),那么自然想到通过定义getter来实现“按需计算”:
ayqy贾杰
2019/06/12
2.3K0
静态资源不加载、页面404等莫名其妙的idea错误
可能是target中并没有加载出来,这时候需要重新打包
2020/10/23
1.3K0
静态资源不加载、页面404等莫名其妙的idea错误
聊聊jedis的return行为
org/springframework/data/redis/core/RedisTemplate.java
code4it
2023/09/22
3510

相似问题

从Nib中启动Storyboard?

11

从Storyboard而不是nib加载自定义TableViewCell

13

如何从StoryBoard内部连接到nib?

14

目标C,从.nib过渡到.storyboard

11

使用Storyboard而不是Nib

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文