我们可以传递具有多种var类型的map变量吗? lists[]
和strings
。
identity = {
type = var.identity.type
identity_ids = var.identity.identity_ids
}
正在处理WebApp模块,在该模块中我需要传递托管用户身份的条件值。
身份块支持以下内容:
type-(必需)指定App Service的身份类型。可能的值是SystemAssigned(Azure将为您生成服务主体),UserAssigned(您可以在identity_ids字段中指定服务主体ID)以及SystemAssigned,UserAssigned(它既分配系统管理的身份,也分配指定的用户分配的身份)。
identity = {
type = var.identity.type
identity_ids = var.identity.identity_ids
}
答案 0 :(得分:0)
Terraform语言文档包括Type Constraints部分,该部分描述了指定模块变量可接受的值类型的不同方法。
您要在此处查找的类型是 object 类型,它与映射类型不同,它指定了一组确切的必需属性以及每个属性具有哪些类型。对象类型是两个structural type kinds中的一种,并且与其他一些语言中的public/VERSION.txt
类型大致相似。您的Perhaps this.active = data.active || true?
变量示例可以这样声明:
struct
我们通常用于构造映射的identity
语法实际上是对象值构造函数;只要所有元素类型都是同类的,对象值就可以自动转换为映射值。因此,只要variable "identity" {
type = object({
type = string
identity_ids = list(string)
})
}
是一个字符串,而{ ... }
是一个字符串列表,上面的示例将接受您在示例中显示的表达式。