ネストされたコンポーネントを使用している場合、$parent 表記を使用して親コンポーネントを参照できます。親コンポーネントが repeat コンストラクトを使用して複数の構成オブジェクトを構築し、各イテレーション内で子コンポーネントが他の構成オブジェクトを構築する場合、$parent 表記は常に親コンポーネントの現在のイテレーションを参照します。たとえば、$parent.properties.name は、親によって現在のイテレーションで構築された構成オブジェクトの name プロパティを参照します。
例:
components:
-
name: my-lbvserver-comp
type: ns::lbvserver
properties:
name: $parameters.name + "-lb"
servicetype: HTTP
ipv46: $parameters.ip
port: 80
lbmethod: $parameters.lb-alg
components:
-
name: my-svcg-comp
type: ns::servicegroup
properties:
name: $parameters.name + "-svcgrp"
servicetype: HTTP
components:
-
name: lbvserver-svg-binding-comp
type: ns::lbvserver_servicegroup_binding
properties:
name: $parent.parent.properties.name
servicegroupname: $parent.properties.name
-
name: members-svcg-comp
type: ns::servicegroup_servicegroupmember_binding
repeat: $parameters.svc-servers
repeat-item: srv
properties:
ip: $srv
port: str($parameters.svc-port)
servicegroupname: $parent.properties.name
コンポーネントの階層を上位に移動し、トップレベルコンポーネントに至るまで、親の親のプロパティにアクセスすることもできます。たとえば、コンポーネント lbvserver-svg-binding-comp のプロパティ名が、$parent.parent 表記を使用することで、その親の親である my-lbvserver-comp コンポーネントのプロパティ名から値を取得します。