条件コンストラクトを使用すると、コンポーネントを条件付きにすることができます。条件コンストラクトの値は、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 に値を指定した場合、コンポーネント servicegroup-comp はStyleBookエンジンによって処理されます。条件がfalse、つまりユーザーがこのパラメータに値を提供しない場合、このパラメータにはnull値が割り当てられ、falseと評価されるため、StyleBookエンジンはこのコンポーネントの存在を無視し、サービスグループは作成されません。
ブール式は、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
この例では、条件は複雑な「OR」式であり、StyleBook内の他の2つのコンポーネントが処理されている(スキップされていない)場合にのみ、この構成オブジェクトがStyleBookによって作成されるようにします。これにより、コンポーネント間の依存関係が作成されます。