在其他模块或者外部系统中使用输出变量时,可以通过${module.module_name.output_variable_name}的方式进行引用。 使用变量可以使得Terraform配置更加灵活和可配置化。通过定义输入变量,可以根据不同的环境或者需求来定制配置,而无需修改配置文件本身。同时,输出变量可以将资源的属性值传递给其他模块或者外部系统,实现资源的...
引用输出变量很容易,表达式为module.<module name>.,如果前面的输出变量定义在模块pkslow_server中,则引用为:module.pkslow_server.instance_ip_addr。 本地变量Local Variable 本地变量有点类似于其它语言代码中的局部变量,在Terraform模块中,它的一个重要作用是避免重复计算一个值。 locals { instance_name = "$...
variable"short_name"{default="terraform-vpc-t"} variable"namespace"{ description ="k8s namespace"} 三、使用模块 现在已经创建好了模块,接下来要引用它。我们就在当前目录引用即可。代码如下: main.tf module"vpc"{ source ="./module_test/"namespace="llj"} output"test3"{ value =module.vpc.test1...
设计Terraform 的 Variable 时,有时你会想要传入一个复杂类型的对象,例如我们在 Module 中创建一个 Subnet 时,会需要一组有关 Virtual Network 的信息。这时我们可以选择通过一个 Variable 让调用者传入一个对象来传递这些信息,比如这样: variable "virtual_network" { type = object({ id = string name = strin...
我有一个模块api_module,它从调用方获取两个输入变量(name, environment)。我完成了这个模块代码的压缩并上传到S3,这样我就可以在任何我想要的地方从S3获得它。当我从S3将这个模块源程序到另一个程序中时,terraform不接受设置任何输入变量。如果我从git中获取模块,相同的程序将接受输 浏览2提问于2019-12-15得票...
子module之间的output可以相互调用。 variables.tf:main.tf的输入变量。 variables.tf样例 #file modules/ecs/variables.tf variable "subnet_id" { type = string } variable "security_group_ids" { type = list(string) } output.tf样例 $ cat outputs.tf ...
provider "alicloud" { region = var.region } variable "region" { default = "cn-zhangjiakou" } # 默认资源名称 variable "name" { default = "my-first-kubernetes-demo" } # 日志服务项目名称 variable "log_project_name" { default = "my-first-kubernetes-sls-demo" } # 可用区 data "alicloud...
variable "vpc_name" { type = string default = "tf_test" description = "专有网络名称" } resource "alicloud_vpc" "vpc" { name = var.vpc_name cidr_block = "172.16.0.0/12" } output "vpc_id" { value = "${alicloud_vpc.vpc.id}" ...
在调用模块的时候,里面的形参数是模块里面通过variable定义的参数,实参可以来自于local。而调用其他模块当中参数,就在模块当中使用output参数即可。 比如ecs模块需要用的vpc模块当中的输出变量,module.哪个模块的名称.output输出变量 vswitch_id = module.terraform_vpc.vswitch_id ...
Terraform支持的顶层块类型包括:provider,resource,data,variable,output,module,locals等关键字。 块标签在块类型之后定义,且数量由块类型决定,样例中resource块类型包含两个标签:huaweicloud_compute_instance和myinstance,嵌套的network类型没有块标签。块主体定义在块最后,由 { 和 } 字符进行封装,在块主体内可以嵌套...