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"
<!--NeedCopy-->
この式は、appname
という名前のパラメータを取得し、文字列-mon
と連結します。
次の種類の式がサポートされています。
算術式
- 加算 (+)
- 減算 (-)
- 乗算 (*)
- 除算 (/)
- モジュロ (%)
例:
- 2つの数字の加算:$parameters.a + $parameters.b
- 2つの数字の乗算:$parameters.a * 10
- ある数を別の数で除算した後の余りを見つける:
5
での結果15%10
文字列式
- 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、82] として表示されます。
関係式
-
== : 2つのオペランドが等しいかどうかをテストし、それらが等しい場合はtrueを返し、それ以外の場合はfalseを返します。
-
! =:2つのオペランドが異なるかどうかをテストし、それらが異なっている場合はtrueを返し、それ以外の場合はfalseを返します。
-
> : 最初のオペランドが2番目のオペランドより大きい場合はtrueを返し、それ以外の場合はfalseを返します。
-
>= :最初のオペランドが2番目のオペランド以上の場合はtrueを返し、それ以外の場合はfalseを返します。
-
< : 最初のオペランドが2番目のオペランドより小さい場合はtrueを返し、それ以外の場合はfalseを返します。
-
<= : 最初のオペランドが2番目のオペランド以下の場合はtrueを返し、それ以外の場合はfalseを返します。
例:
- 等価演算子の使用:
$parameters.name = = "abcd"
- 不等式演算子の使用:
$parameters.name != "default"
- 他の関係演算子の例
- 10 > 9
- 10 >= 10
- 0 < 9
- 10 <= 9
- 10 == 10
- 10 != 1
論理式-ブール値
-
and: 論理「and」演算子。両方のオペランドがtrueの場合、結果はtrueとなり、それ以外の場合はfalseとなります。
-
or: 論理 ‘or’ 演算子。いずれかのオペランドがtrueの場合、結果はtrueとなり、それ以外の場合はfalseとなります。
-
NOT: 単項演算子。オペランドが真の場合、結果は偽になり、逆になります。
-
in:最初の引数が2番目の引数の部分文字列であるかどうかをテストします
-
in: 項目がリストの一部であるかどうかをテストします
注
文字列が数値に変換され、数字が文字列に変換されるタイプキャスト式を使用できます。同様に、
tcp-port
数値にキャストすることも、IP アドレスを文字列にキャストすることもできます。演算子の前と後に区切り文字を使用します。区切り記号は次のように使えます。
演算子の前:
space
、tab
、comma
、(
、)
、[
、]
演算子のあと:
space
、tab
、(
、[
例:
abc + def
100 % 10
10 > 9
逐語的な文字列式
文字列内の特殊文字がリテラル形式を取る必要がある場合は、逐語的な文字列を使用できます。これらの文字列には、エスケープ文字、バックスラッシュ、引用符、括弧、空白、角かっこなどを含めることができます。逐語文字列では、特殊文字の通常の解釈はスキップされます。文字列内のすべての文字は、リテラル形式で保持されます。
StyleBooksでは、逐語的な文字列を使用して、NetScaler ADCポリシー式をリテラル形式で含めることができます。通常、ポリシー式には特殊文字が含まれています。逐語的な文字列を使用しない場合、文字列を部分文字列に分割して特殊文字をエスケープする必要があります。
逐語的な文字列を作成するには、次のように特殊文字間の文字列をカプセル化します。
~{string}~
<!--NeedCopy-->
StyleBookのどこにでも逐語的な文字列を使用できます。
注:
このシーケンスは逐語的な文字列の終わりを示すため、入力文字列には一連の文字
}~
を使用しないでください。
例:
~{HTTP.REQ.COOKIE.VALUE("jsessionid") ALT HTTP.REQ.URL.BEFORE_STR("=").AFTER_STR(";jsessionid=") ALT HTTP.REQ.URL.AFTER_STR(";jsessionid=")}~
<!--NeedCopy-->
ターゲットエクスプレッション
StyleBook 定義では、 $current-target
式を使用して、現在のターゲットの ADC インスタンスを参照できます。ターゲットADCインスタンスの IP アドレスを具体的に参照するには、この式を次のように使用します。
$current-target.ip
<!--NeedCopy-->
例:
components:
-
name: lb-comp
type: ns::lbvserver
properties:
name: $current-target.ip + "-lbvserver"
<!--NeedCopy-->
この例では、 lbvserver
という名前は、ターゲット ADC インスタンスの IP アドレスを使用して作成されます。
式の種類の検証
StyleBook エンジンでは、コンパイル時により強力な型チェックを行うことができます。つまり、StyleBookの作成時に使用される式は、設定パックの作成時ではなく、StyleBook自体のインポート時に検証されます。
パラメータ、置換、コンポーネント、コンポーネントのプロパティ、コンポーネントの出力、ユーザー定義変数 (repeat-item、repeat-index、置換関数への引数) などへの参照はすべて、その存在と型について検証されます。
タイプチェックの例:
次の例では、 lbvserver
StyleBookに期待されるポートプロパティのタイプはtcp-port
です 。NetScaler Application Delivery Management(ADM)では、タイプの検証はコンパイル時(インポート時)に行われます。コンパイラーはその文字列を検出し、tcp-port
は互換性のない型であるため、StyleBookコンパイラーはエラーを表示し、StyleBookのインポートまたは移行に失敗します。
components:
-
name: lbvserver-comp
type: ns::lbvserver
properties:
name: mylb
ipv46: 10.102.190.15
port: str("80")
servicetype: HTTP
<!--NeedCopy-->
この StyleBook を正常にコンパイルするには、コンパイラで以下を数値として宣言します。
port: 80
無効な式のフラグ付けの例:
以前のリリースでは、無効な式がプロパティ名に割り当てられている場合、コンパイラは無効な式を検出せず、StyleBookをNetScaler ADM にインポートすることができました。これで、このStyleBookがNetScaler ADMにインポートされると、コンパイラはこのような無効な式を識別し、フラグを付けます。その結果、StyleBookはNetScaler ADMへのインポートに失敗します。
この例では、 lb-sg-binding-comp
のコンポーネントの名前プロパティに割り当てられる式は $components.lbvserver-comp.properties.lbvservername
です。ただし、コンポーネントlbvserver-comp
にはlbvservername
と呼ばれるプロパティはありません。以前のNetScaler ADM リリースでは、コンパイラはこの式を許可し、正常にインポートされていました。実際の失敗はこのStyleBookを用いて構成パックを作成するときに起こります。ただし、インポート中にこの種のエラーが特定され、StyleBookはNetScaler ADM にインポートされません。このようなエラーを手動で修正し、StyleBooks をインポートします。
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 コンポーネントの最初の項目からの出力であるlbcomps コンポーネントの 2 番目の項目のプロパティservicegroupname を参照します |
共有
共有
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.