N1 Grid Service Provisioning System 5.0 プランとコンポーネントの開発者ガイド

単純置換変数参照

入力ソースには、任意の数の単純置換変数参照を含めることができます。単純置換変数の構文は、次のとおりです。


:[variable]

variable は次のいずれかです。

事前定義されたコンポーネント変数名

事前定義されたコンポーネント変数名は、次のように、生成コンテキストの関連するコンポーネント属性を参照します。

事前定義されたコンポーネント変数は、変数参照がベースコンポーネントで行われる場合でも、常に、インストールされている実際の コンポーネントに関連付けられて解決されます。事前定義されたコンポーネント変数は、PUBLIC 変数として扱われます。

置換変数のエスケープシーケンス

入力ソースに :[ を含める場合は、 :[[ を使用してエスケープする必要があります。:[[ を検出するたびに、構成生成機能が :[ に置き換えます。

たとえば、プロビジョニングシステムに box の値を置換させるのではなく、:[box] を字句どおりに含める場合は、:[[box] を使用します。

入力ソースが XML で作成されたコンポーネントの属性である場合、値は XML ベースのエスケープシーケンスに関する次の規則が適用されます。

これらのエスケープ規則は、プロビジョニングシステムのブラウザインタフェース、構成リソースファイル、または構成生成 CLI コマンドの入力によるオーバーライド値には当てはまりません。

置換変数の展開

置換変数参照が変数設定値によって置き換えられるときには、値がそのつど展開されてから置換されます。この展開が必要なのは、値そのものに単純置換変数の参照が含まれている場合があるからです。値の置換を禁止するには、入力ソースを :[[ でエスケープします。

デフォルト置換値またはオーバーライド置換値、パラメータのデフォルト値、およびローカル変数のデフォルト値で使用できるのは、ホストおよび外部コンポーネント置換参照だけです。このような参照は、その他の入力ソースでは認められません。

単純置換変数参照の展開

変数設定値における単純置換変数参照の構文は、入力ソースの場合と同じです。


:[varname]

この場合、参照する変数名が、参照が含まれる変数より先に宣言されていなければなりません。この制約によって、参照の循環が防止されます。

派生コンポーネントの場合、ベースコンポーネントから継承した値が、親での宣言順に従って先に展開されます。その後、ローカルの非オーバーライド変数が宣言された順に展開されます。継承した値を無効にするローカル変数は、継承値の展開順序と同じ順で継承値の代わりに展開されます。したがって、オーバーライド変数が参照できるのは、すでに宣言されているほかの継承変数またはオーバーライド変数だけです。たとえば、ベースコンポーネント A が xy という変数を宣言するとします。さらに、派生コンポーネント B が変数 zy を宣言します。コンポーネント B で変数が評価される順番は、コンポーネント A から継承した x、続いてコンポーネント B によってオーバーライドされた y、最後にコンポーネント B のローカル変数である z です。


例 6–1 単純置換変数の使用方法

次の表に、置換変数、対応する展開後の値、未展開の値の例を示します。

変数名 

未展開の値 

展開後の値 

foo

silly

silly

bar

:[foo]

silly

baz

a :[foo] :[bar] example

a silly silly example

badFrob

:[frob]

エラー – 順参照 

frob

:[[foo]

:[foo]

compName

:[sys.name]

ターゲットコンポーネント名 

badFoz

:[foz]

エラー – foz が未宣言