Terraform模块元参数

在Terraform 0.13之前,模块在使用上存在一些限制。
例如通过模块来创建EC2主机,可以这样:

module "ec2_instance" {source  = "terraform-aws-modules/ec2-instance/aws"version = "~> 3.0"name = "single-instance"ami                    = "ami-ebd02392"instance_type          = "t2.micro"key_name               = "user1"monitoring             = truevpc_security_group_ids = ["sg-12345678"]subnet_id              = "subnet-eddcdzz4"tags = {Terraform   = "true"Environment = "dev"}
}

如果要创建两台这样的主机怎么办?在Terraform 0.13之前的版本中,由于Module不支持元参数,所以只能手动拷贝模块代码:

module "ec2_instance_0" {source  = "terraform-aws-modules/ec2-instance/aws"version = "~> 3.0"name = "single-instance-0"ami                    = "ami-ebd02392"instance_type          = "t2.micro"key_name               = "user1"monitoring             = truevpc_security_group_ids = ["sg-12345678"]subnet_id              = "subnet-eddcdzz4"tags = {Terraform   = "true"Environment = "dev"}
}module "ec2_instance_1" {source  = "terraform-aws-modules/ec2-instance/aws"version = "~> 3.0"name = "single-instance-1"ami                    = "ami-ebd02392"instance_type          = "t2.micro"key_name               = "user1"monitoring             = truevpc_security_group_ids = ["sg-12345678"]subnet_id              = "subnet-eddcdzz4"tags = {Terraform   = "true"Environment = "dev"}
}

自从Terraform 0.13开始,模块也像资源一样,支持countfor_eachdepends_on三种元参数。
可以这样:

module "ec2_instance" {count = 2source  = "terraform-aws-modules/ec2-instance/aws"version = "~> 3.0"name = "single-instance-${count.index}"ami                    = "ami-ebd02392"instance_type          = "t2.micro"key_name               = "user1"monitoring             = truevpc_security_group_ids = ["sg-12345678"]subnet_id              = "subnet-eddcdzz4"tags = {Terraform   = "true"Environment = "dev"}
}

要注意的是Terraform 0.13之后在模块上声明depends_on,列表中也可以传入另一个模块,声明depends_on的模块中的所有资源的创建都会发生在被依赖的模块中所有资源创建完成之后。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/832461.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue中的store

1.什么是store 在 Vue.js 应用中,"store" 通常指的是 Vuex。Vuex 是一个专门为 Vue.js 应用开发的状态管理库,它能够帮助你在应用中更好地管理和共享状态。以下是 Vuex 的一些简单介绍: 状态管理:Vuex 允许你将应用中的…

Flink时间语义 | 大数据技术

⭐简单说两句⭐ ✨ 正在努力的小叮当~ 💖 超级爱分享,分享各种有趣干货! 👩‍💻 提供:模拟面试 | 简历诊断 | 独家简历模板 🌈 感谢关注,关注了你就是我的超级粉丝啦! &a…

爬虫学习(2)破解百度翻译

代码 import requests import jsonif __name__ "__main__":url https://fanyi.baidu.com/sug#post请求参数处理(同get请求一致)headers {"User-Agent": Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, …

基于Springboot的果蔬作物疾病防治系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的果蔬作物疾病防治系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系…

ICode国际青少年编程竞赛- Python-1级训练场-识别循环规律1

ICode国际青少年编程竞赛- Python-1级训练场-识别循环规律1 1、 for i in range(4):Dev.step(6)Dev.turnLeft()2、 for i in range(3):Dev.turnLeft()Dev.step(2)Dev.turnRight()Dev.step(2)3、 for i in range(3):Spaceship.step(5)Spaceship.turnLeft()Spaceship.step(…

spi 驱动总结

0. 源码 结构 drivers/spi/spi.c 对应spi 核心 drivers/spi/spidev.c 对应spi 设备驱动 drivers/spi/spi-bcm2835.c 对应spi 控制器驱动 1. 数据发送: ctrl->transfer_one 的实现 2. 注册子设备 int spi_register_controller(struct spi_controller *ctlr) 注册spi 控…

算法训练营day31

一、贪心算法理论基础 在问题的每个决策阶段,都选择当前看起来最优的选择,即贪心地做出局部最优的决策,以期获得全局最优解。 最好用的策略就是举反例,如果想不到反例,那么就试一试贪心吧。 动态规划和贪心的区别 …

TypeScipt 联合类型 | 号的使用

联合类型有两种使用方法: 一种类型中多个可能的值。具有多种不同的类型中的一种。 一种类型中多个可能的值。 type isAye true | false;const aye:isAye true; const aye1:isAye false; const aye2:isAye 3; // Type number is not assignable to type isAye…

编译原理的基本概念、发展历程、主要内容和实际应用

**编译原理** 一、引言 编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和…

Linux字符设备驱动(一) - 框架

字符设备是Linux三大设备之一(另外两种是块设备,网络设备),字符设备就是字节流形式通讯的I/O设备,绝大部分设备都是字符设备,常见的字符设备包括鼠标、键盘、显示器、串口等等,当我们执行ls -l /dev的时候,就能看到大量…

2024年5月6日优雅草蜻蜓API大数据服务中心v2.0.3更新

v2.0.3更新 2024年5月6日优雅草蜻蜓API大数据服务中心v2.0.3更新-修复改版后搜索框漏掉的bug-增加搜索框 提示:优雅草大数据中心已经 上线137天 稳定运行 1181555 次 累积调用 目前大数据中心用户呈现增长趋势,目标2024年11月底突破1亿次调用&#xf…

021、Python+fastapi,第一个Python项目走向第21步:ubuntu 24.04 docker 安装mysql8集群、redis集群(二)

系列文章目录 pythonvue3fastapiai 学习_浪淘沙jkp的博客-CSDN博客https://blog.csdn.net/jiangkp/category_12623996.html 前言 安装redis 我会以三种方式安装,在5月4号修改完成 第一、直接最简单安装,适用于测试环境玩玩 第二、conf配置安装 第三…

Redis的数据类型及使用场景

redis命令大全官网: Commands | Docs (redis.io) 基本介绍 redis起初主要就是为了解决性能问题的,那么redis为什么快? 基于内存操作的,所以操作不需要跟磁盘进行交互,单次的执行会很快 命令执行是单线程 因为基于内存操作 单次执行时间反…

Java面试题:多线程3

CAS Compare and Swap(比较再交换) 体现了一种乐观锁的思想,在无锁情况下保证线程操作共享数据的原子性. 线程A和线程B对主内存中的变量c同时进行修改 在线程A中存在预期值a,修改后的更新值a1 在线程B中存在预期值b,修改后的更新值b1 当且仅当预期值和主内存中的变量值相等…

MYSQL基础架构、执行过程分析、事务的实现、索引的选择、覆盖索引

本文是mysql45讲的1-5的总结 文章目录 基础架构连接器分析器优化器执行器SQL查询执行过程详细执行步骤 SQL更新执行过程重要的日志模块:redo log重要的日志模块:binlog阶段性提交 事务事务隔离的实现启动 索引数据库索引模型InnoDB索引组织结构主键选择…

【数据可视化-02】Seaborn图形实战宝典

Seaborn介绍 Seaborn是一个基于Python的数据可视化库,它建立在matplotlib的基础之上,为统计数据的可视化提供了高级接口。Seaborn通过简洁美观的默认样式和绘图类型,使数据可视化变得更加简单和直观。它特别适用于那些想要创建具有吸引力且信…

从零开始学RSA: [WUSTCTF2020]情书等5题

1 [WUSTCTF2020]情书 题目 Premise: Enumerate the alphabet by 0、1、2、..... 、25 Using the RSA system Encryption:0156 0821 1616 0041 0140 2130 1616 0793 Public Key:2537 and 13 Private Key:2537 and 937flag: wctf2020{Decryption}解题 前提:用0、…

IP路由:构建高效网络的基石

目录 前言 一. IP数据报交付 二. IP路由 1.IP路由器 2.IP路由表 3.特定主机路由与默认路由 4.路由解析 5.路由选择过程 三. 路由协议 1.静态路由与动态路由 2.内部网关协议与外部网关协议 3.距离向量路由协议和链路状态路由协议 四. RIP协议 1.概述 2.工作原理 3.报文格式 …

高效、精准:皮秒激光切割机在陶瓷基板加工中的应用

皮秒激光切割机(激光划片机)在陶瓷基板切割领域具有显著的优势和潜力,主要体现在以下几个方面: 1. 高精度:皮秒激光切割机能够实现极高的切割精度,对于陶瓷基板这种需要精细加工的材料尤为重要。它能够在不…

【网络原理】IP协议详解

一.与IP协议相关的基本概念 IP协议,即网际互连协议(Internet Protocol),是TCP/IP体系中的核心网络层协议。 网络层IP协议解决的问题 数据传输的过程中,不是直接进行的传输,而是经过层层的封装和分用的过程才能到达对端. IP协议主…