简化对合并进行嵌套调用的表达式

问题描述 投票:0回答:1

我是 Terraform 的新手,正在查看这样的代码,想知道是否可以简化它:

  compartment_id = length(coalesce(data.oci_identity_compartments.compartment, [])) > 0 ? (
     length(coalesce(data.oci_identity_compartments.compartment[0].compartments, [])) > 0 ? (
       data.oci_identity_compartments.compartment[0].compartments[0].id) : null) : null

有没有办法把这个表达式写得更优雅?

terraform
1个回答
0
投票

嵌套长度和合并函数可以用更直接的方法替换,使用查找或仅条件逻辑。这是一个简化版本:

氯化氢

compartment_id = (
  data.oci_identity_compartments.compartment[0].compartments[0].id if 
  length(data.oci_identity_compartments.compartment) > 0 && 
  length(data.oci_identity_compartments.compartment[0].compartments) > 0 
  else null
)
© www.soinside.com 2019 - 2024. All rights reserved.