This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
式
StyleBookの最も強力な機能の1つに、式の使用があります。さまざまなシナリオでStyleBookの式を使用して動的な値を計算できます。次の例は、パラメーター値をリテラル文字列と連結する式を示しています。
例:
$parameters.appname + “-mon”
この式では、appnameという名前のパラメーターを取得して文字列「-mon」と連結します。
次の種類の式がサポートされています。
算術式
- 加算 (+)
- 減算 (-)
- 乗算 (*)
- 除算 (/)
- モジュロ (%)
例:
- 2つの数字の加算:$parameters.a + $parameters.b
- 2つの数字の乗算:$parameters.a * 10
- ある数を別の数で除算した後の余りを見つける:
15% 10 件が 5 件見つかりました
文字列式
- 2 つの文字列を連結する (+)
例:
2 つの文字列を連結してください:str (「app-」) + $parameters.appname
一覧式
2つのリスト(+)をマージします
例:
-
2つの一覧を連結:$parameters.external-servers + $parameters.internal-servers
-
$parameters.ports-1が[80, 81]で、$parameters.port-2が[81, 82]の場合、$parameters.ports-1 + $parameters.ports-2の結果は[80, 81, 81, 82]になります。
関係式
-
==:2つのオペランドが等しいかどうかをテストして、等しい場合はtrueを、異なる場合はfalseを返します。
-
!=:2つのオペランドが異なるかどうかをテストして、異なる場合はtrueを、等しい場合はfalseを返します。
-
: 最初のオペランドが2番目のオペランドより大きい場合はtrueを返し、それ以外の場合はfalseを返します。
-
=:1つ目のオペランドが2つ目のオペランド以上である場合はtrueを、それ以外の場合はfalseを返します。
-
<:1つ目のオペランドが2つ目のオペランドよりも小さい場合はtrueを、それ以外の場合はfalseを返します。
- <=:1つ目のオペランドが2つ目のオペランド以下である場合はtrueを、それ以外の場合はfalseを返します。
例:
- 等価演算子の使用:$parameters.name = =「abcd」
- 非等値演算子の使用:$parameters.name != “default”
- 他の関係演算子の例
- 10 > 9
- 10 >= 10
- 0 < 9
- 10 <= 9
- 10 == 10
- 10 != 1
論理 (ブーリアン) 表現
-
and:論理積演算子。両方のオペランドがtrueの場合、結果はtrueとなり、それ以外の場合はfalseとなります。
-
or:論理和演算子。いずれかのオペランドがtrueの場合、結果はtrueとなり、それ以外の場合はfalseとなります。
-
not:単項演算子。オペランドがtrueの場合、結果はfalseとなり、オペランドがfalseの場合、結果はtrueとなります。
-
in: 最初の引数が第2引数の部分文字列かどうかをテストします
-
in: 項目がリストの一部であるかどうかをテストします
注
文字列が数値に変換でき、数値が文字列に変換できる場合は、キャスト式を入力できます。同様に、TCPポートを数値に型変換でき、IPアドレスを文字列に型変換できます。
演算子の前後には区切り記号を使う必要があります。区切り記号は次のように使えます。
演算子の前:スペース、タブ、カンマ、(、 )、[、 ]
演算子の後:スペース、タブ、(、[
例:
abc + def
100 % 10
10 > 9
式の種類の検証
StyleBookエンジンはコンパイル時により強力な種類のチェックができるようになりました。つまり、StyleBookを書くときに使われる式は、構成パックの作成時ではなくて、StyleBook自身のインポート時に検証されます。
パラメーター、置換、コンポーネント、コンポーネントのプロパティ、コンポーネントの出力、ユーザー定義変数 (repeat-item、repeat-index、代替関数への引数) などへの参照はすべて、その存在とタイプについて検証されます。
タイプチェックの例:
以下の例では、lbvserverのStyleBookのポートプロパティの予期される種類はtcp-portです。Citrix Application Delivery Management(ADM)の以前のリリースでは、StyleBookコンパイラが値を文字列として計算し、StyleBookがインポートされて実行されていました。今では、コンパイル時に種類の検証が行われます(インポート時)。コンパイラは文字列とtcp-portが互換性のない種類であることを発見し、StyleBookコンパイラはエラーを返し、StyleBookのインポートまたは移行に失敗します。
components:
-
name: lbvserver-comp
type: ns::lbvserver
properties:
name: mylb
ipv46: 10.102.190.15
port: str("80")
servicetype: HTTP
You should now declare this as a number for the compiler to successfully compile this StyleBook.
port: 80
<!--NeedCopy-->
無効な式のフラグ付けの例:
以前のリリースでは、無効な式がプロパティ名に割り当てられている場合、コンパイラは無効な式を検出せず、StyleBookをNetScaler ADM にインポートすることができました。これで、このStyleBookがCitrix ADM にインポートされると、コンパイラーはそのような無効な式を識別してフラグを立てます。その結果、StyleBookはCitrix ADM にインポートされません。
この例では、lb-sg-binding-comp componentの名前のプロパティに割り当てられた式は次の通りです: $components.lbvserver-comp.properties.lbvservername。ただし、コンポーネントlbvserver-compにはlbvservernameと呼ばれるプロパティはありません。以前のNetScaler ADM リリースでは、コンパイラはこの式を許可し、正常にインポートされていました。実際の失敗はこのStyleBookを用いて構成パックを作成するときに起こります。ただし、インポート中にこの種のエラーが特定され、StyleBookはNetScaler ADM にインポートされません。こういったエラーを手動で修正し、StyleBookをインポートする必要があります。
components:
-
name: lbvserver-comp
type: ns::lbvserver
properties:
name: mylb
ipv46: 10.102.190.15
port: 80
servicetype: HTTP
-
name: sg-comp
type: ns::servicegroup
properties:
servicegroupname: mysg
servicetype: HTTP
-
name: lb-sg-binding-comp
type: ns::lbvserver_servicegroup_binding
condition: $parameters.create-binding
properties:
name: $components.lbvserver-comp.properties.lbvservername
servicegroupname: $components.sg-comp.properties.servicegroupname
<!--NeedCopy-->
インデックスの一覧
一覧のアイテムは直接インデックスすることでアクセスできます。
| | | | ——————————————————————————- | ———————————————————————————————————————————————- | | **式** | **説明** | | $components.test-lbs[0] | test-lbsコンポーネントの最初のアイテムを参照します。 | | $components.test-lbs [0] .properties.p1 | test-lbsコンポーネントの最初のアイテムのプロパティp1を参照します。 | | $components.lbcomps[0].outputs.servicegroups[1].properties.servicegroupname | servicegroupsコンポーネントの2番目のアイテムのプロパティservicegroupnameを参照しますが、これはlbcompsコンポーネントの最初のアイテムからの出力です。 | |
共有
共有
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.