条件构造

Last published : Oct 06, 2026
您可以使用条件构造使组件具有条件性。条件构造的值是一个布尔表达式,其计算结果为 true 或 false。如果条件为 true,则该组件用于构建其配置对象。如果条件为 false,则跳过该组件,并且不会通过它创建任何配置对象。布尔表达式通常基于参数值。
示例:
components:

      -

        name: servicegroup-comp

        type: ns::servicegroup

        condition: $parameters.svc-server-ips

        properties:

              name: $parameters.name + "-svcgrp"

              servicetype: HTTP
在此示例中,如果用户为可选参数 svc-server-ips 指定了值,则 StyleBook 引擎将处理组件 servicegroup-comp。如果条件为 false,即如果用户未向此参数提供值,则此参数将分配一个空值并计算为 false,那么 StyleBook 引擎将忽略此组件的存在,并且不会创建 servicegroup。
请注意,布尔表达式可以基于 StyleBook 中支持的任何有效表达式(例如,是否存在另一个组件,或者参数是否具有特定值)。
如果条件评估为 true,以下示例将构建 NITRO 类型 ns::systemfile 的配置对象。
示例:
     components

          -

            name: pem_key_files

            type: ns::systemfile

            condition: "$components.der-certificate-files-comp or $components.pem-certificate-files-comp"

            properties:

                   filecontent: $certificate.keyfile.contents

                   fileencoding: "BASE64"

                   filelocation: "/nsconfig/ssl"

                   filename: $certificate.keyfile.filename
在此示例中,条件是一个复杂的“或”表达式,您希望仅当 StyleBook 中的另外两个组件已被处理(未跳过)时,才由 StyleBook 创建此配置对象,从而在组件之间创建依赖关系。