条件コンストラクトを使用すると、コンポーネントを条件付きにできます。条件コンストラクトの値は、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によって作成したいと考えています。