Terraform - 确保根据是否还设置了另一个值来设置值

2024-01-10

如果其他值之一是某个字符串,我想强制设置一个值,而不是使用默认的“”。

例如我有:

module "test_beanstalk" {
  tier = "Worker"
  queue = "myQueue"
///
}

在此,当tier被设定为worker我想强制执行queue也被设定。在上面的示例中,存在一种情况,可以省略队列,从而导致 aws 生成通用队列,而不是使用该特定应用程序所需的队列。


这样的特征是不直接支持在TF中。但你可以使用以下命令强制 TF 出错locals如果您的验证失败,某些情况只会导致错误。例如,在你的test_beanstalk你可以有:

variable "tier" {
  default = "Worker"
}

variable "queue" {
  default = ""
}

locals {
  if_queue_given = var.tier == "Worker" && var.queue == "" ? tonumber("queue can't be empty") : 1
}

The tonumber("queue can't be empty")将被执行并会导致 TF 错误,如果条件var.tier == "Worker" && var.queue == "" is true.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Terraform - 确保根据是否还设置了另一个值来设置值 的相关文章

随机推荐

  • Java 中的 Hbase CopyTable

    我想将一个 Hbase 表复制到另一个具有良好性能的位置 我想重用 CopyTable java 中的代码Hbase 服务器 github 页面 https github com apache hbase blob master hbase
  • Android 4.3 之前使用 SimpleDateFormat 的“ZZZZZ”(+03:00) 作为时区

    我在用着SimpleDateFormat有格式yyyy MM dd T HH mm ssZZZZZ 预期输出为 2014 08 26T13 00 14 03 00 但是 仅从 Android 4 3 开始支持 ZZZZZ 结果如下 以上4
  • 为使用 Electron 创建的应用程序签名 Windows 安装程序 (.exe)

    我有一个使用构建的简单应用程序电子框架 我使用以下方式打包了代码electron packager interactive 我还创建了一个Windows 安装程序文件可以使用 Inno Setup 编译器 单个 exe 文件 进行分发 这里
  • Angular 2 中条件必需的验证器指令

    我需要根据其他字段的值将某些表单字段设置为必需或不必需 内置的必需的验证器 https angular io docs ts latest api common RequiredValidator directive html指令似乎不支持
  • C# SecureString 问题

    有没有什么方法可以在不影响安全性的情况下获取 SecureString 的值 例如 在下面的代码中 一旦执行 PtrToStringBSTR 字符串就不再安全 因为字符串是不可变的 并且垃圾收集对于字符串来说是不确定的 IntPtr ptr
  • Android Spinner 设置选择与 2 向绑定

    当配置了 2 路数据绑定时 我正在努力获取一些与 Android spinner 一起使用的功能 我想通过 2 路数据绑定设置微调器的初始值android selectedItemPosition 微调器条目由 ViewModel 初始化并
  • 在之前更改背景颜色后禁用时,JTextField 的背景颜色不会变为“灰色”

    通常当你使用setEditable false or setEnabled false JTextField 的背景 前景色变为 灰色 但是 如果先前已使用设置背景颜色setBackground color 例如white 然后调用setE
  • 所有 Redis 命令都是异步的吗?

    我是 Redis 和 Node JS 的新手 并且一直在尝试将两者一起使用 然而 我对可以一个接一个地使用哪些功能感到有点困惑 随着数据库大小的增加 以下代码似乎同步运行 client dbsize function err numKeys
  • 如何检查 React-Native ES6 中是否安装了组件

    我在我的应用程序中设置一个侦听器 并在广播时使用强制更新 但它给出错误 forceUpdate 无法在未安装的组件上调用 现在如何检查组件是否已安装isMounted 函数已被弃用 use strict var React require
  • 从 C++ 访问 Java 类的最佳方式? (比直接使用JNI更好)

    我必须将一个大型 Java 库集成到一个相当大的 C 应用程序中 解决方案是使用 JNI 但这需要手动编写所有类的代码 例如 Python 有一个很棒的 JPype 解决方案 http jpype sourceforge net http
  • 如何使用雷达获取某个地址的价值

    如果我使用radare2 并且我运行 可以说dr在调试时 它会打印一些寄存器的指针 让我们假装像esp正在解决0x04084308或类似的东西 如果我想得到的值esp指的是 我该怎么做 提前致谢 print rsp寄存器值 0x560207
  • 如何使用命令行将 SQL 查询导出到 TXT

    我要出口select from table从 Linux 命令行将结果保存到文本文件 我该怎么做 谢谢 让 look at link http www tech recipes com rx 1475 save mysql query re
  • C# 中从 1 到 N 的数字相加

    我正在用 C 编写代码 并尝试添加数字 1 和 N 之间的所有数字 N 是在文本框中输入的数字 我正在这样做 至少尝试通过将其放入 while 循环中来做到这一点 我之前已经添加了两个文本框之间的所有数字 但由于某种原因 我快把自己逼疯了
  • 如何将本地MySQL数据库部署到Heroku

    我是 Heroku 的新手 我有一个 Ruby Sinatra 应用程序 我计划在其中使用 MySQL 数据库作为主要数据存储 但是 我不想将结果直接写入 Heroku 上的数据库 相反 我想将结果写入本地数据库 然后能够轻松地将本地数据库
  • 如何使 dataview.list 在 Sencha Touch 2 中可见?

    这里是 Sencha Touch 新手 也就是说 在过去一天左右的时间里 我一直在慢慢地思考这个问题 让我发疯的一件事是表单面板和列表由于某些奇怪的布局原因而没有显示 我不明白为什么 例如 我有以下搜索视图 Ext define NC vi
  • Python lxml - 获取标签文本的索引

    我有一个格式类似于 docx 的 xml 文件 即
  • 100%全屏Colorbox(jquery lightbox)滚动条不会替换或覆盖基础层的滚动条

    在下面的段落中 我将介绍当我使用全屏灯箱时两个滚动条彼此相邻的问题 基础层 初始 html 的滚动条和 iframe 灯箱 的滚动条 我想删除或覆盖基本滚动条 在我的基本页面设计中 我有一个按行排列的投资组合项目的垂直列表 该页面旨在滚动
  • 使用 url var 下载文件 Curl

    我想用 Curl 下载文件 问题是下载链接不是直接的 例如 http localhost download php id 13456 当我尝试使用curl下载文件时 它下载文件download php 这是我的卷曲代码 function D
  • 在Python中枚举带有标签的笛卡尔积的最佳方法?

    给定一个将变量映射到可能结果的字典 lblA False True lblB False True lblC 0 1 2 我想枚举所有可能的字典结果 lblA False lblB False lblC 0 lblA True lblB F
  • Terraform - 确保根据是否还设置了另一个值来设置值

    如果其他值之一是某个字符串 我想强制设置一个值 而不是使用默认的 例如我有 module test beanstalk tier Worker queue myQueue 在此 当tier被设定为worker我想强制执行queue也被设定