主要观点:在 Terraform 中,许多配置是动态的,使用条件表达式构建列表时可能会出现null值,直接将其传递给资源可能导致验证错误,compact()函数可确保只包含有效非null元素,防止应用阶段的运行时错误。
关键信息:
compact()函数可从列表中移除null和空字符串元素,只保留非空非null字符串元素,语法为compact(list)。- 常见使用场景包括处理条件资源参数、合并变量默认值和覆盖值、处理输出或模块参数、在循环中进行条件包含、简化过滤逻辑等。
- 有六个使用
compact()函数的示例,包括移除简单列表中的null、处理带条件值的动态列表、与flatten()结合使用、与concat结合使用、在模块中过滤输入、在for_each中跳过不需要的元素等。 concat函数用于合并多个列表,compact函数用于移除列表中的null和空字符串,二者可结合使用。
重要细节:compact函数只移除null和空字符串元素,不移除其他假值如false、0或空列表。- 使用
compact()函数前要确保列表中的元素都是字符串或可强制转换为字符串,否则可能产生类型错误。 for_each的键必须是非null且唯一的,使用compact()可保证安全有效的迭代。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。