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 つの文字列を連結する (+)
例:
Concatenate two strings: str(“app-“) + $parameters.appname
一覧式
2つのリスト(+)をマージします
例:
-
Concatenate two lists: $parameters.external-servers + $parameters.internal-servers
-
If $parameters.ports-1 is [80, 81] and $parameters.port-2 is [81, 82], then $parameters.ports-1 + $parameters.ports-2 results as a list [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: The logical ‘and’ operator. 両方のオペランドがtrueの場合、結果はtrueとなり、それ以外の場合はfalseとなります。
-
or: The logical ‘or’ operator. いずれかのオペランドがtrueの場合、結果はtrueとなり、それ以外の場合はfalseとなります。
-
not: The unary operator. オペランドが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をCitrix ADM にインポートすることができました。このStyleBookをCitrix ADM にインポートすると、コンパイラはそのような無効な式を識別してフラグを立てます。その結果、スタイルブックはCitrix ADM にインポートされません。
この例では、lb-sg-binding-comp componentの名前のプロパティに割り当てられた式は次の通りです: $components.lbvserver-comp.properties.lbvservername。ただし、コンポーネントlbvserver-compにはlbvservernameと呼ばれるプロパティはありません。以前のCitrix ADM リリースでは、コンパイラはこの式を許可し、正常にインポートされていました。実際の失敗はこのStyleBookを用いて構成パックを作成するときに起こります。ただし、インポート中にこの種のエラーが特定され、StyleBookはCitrix 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 Citrix Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Citrix 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 Citrix product purchase decisions.
If you do not agree, select Do Not Agree to exit.