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!
自動置換
Substitutionsセクションは、StyleBookのほかの部分でStyleBookを読み取りやすくするために使用できる、複雑な式の省略名を定義するために使用されます。また、このセクションは、StyleBookで同じ式または値を複数回使用する場合にも役立ちます(定数値など)。この値に置換名を使用すると、この値を変更する必要があるときに、StyleBookに出現するすべての箇所で値を更新するのではなく(この方法ではエラーが発生しやすくなります)、置換値のみを更新できます。
置換は、このドキュメントの後の例で示すように、値のマッピングの定義にも使用できます。
一覧の各置換はキーと値で構成されます。 値には、単純な値、式、関数、またはマップを指定できます。
次の例では、2つの置換が定義されています。1つ目は、8181の省略名として使用できる「http-port」です。置換を使用することで、この値をStyleBookのほかの部分で、8181ではなく$substitutions.http-portとして参照できるようになります。
置換:
http-port: 8181
これにより、ポート番号のニーモニック名を指定できるほか、その使用回数に関係なく、このポート番号をStyleBook内の1か所で定義できます。ポート番号を8080に変更する場合は、Substitutionsセクションで変更すると、ニーモニック名http-portを使用しているすべての箇所にその変更が適用されます。次の例は、コンポーネントで置換を使用する方法を示しています。
components:
-
name: my-lbvserver-comp
type: ns::lbvserver
properties:
name: $parameters.name + "-lb"
servicetype: HTTP
ipv46: $parameters.ip
port: \*\*$substitutions.http-port\*\*
lbmethod: $parameters.lb-alg
<!--NeedCopy-->
置換は複雑な式にすることもできます。次の例は、2つの置換で式を使用する方法を示しています。
substitutions:
app-rule: HTTP.REQ.HEADER("X-Test-Application").EXISTS
app-name: str("acme-") + $parameters.name + str("-app")
<!--NeedCopy-->
また、置換式では、次の例に示すように既存の置換式を使用することもできます。
substitutions:
http-port: 8181
app-name: str("acme-") + $parameters.name + str($substitutions.http-port) + str("-app")
<!--NeedCopy-->
置換のもう1つの便利な機能がマップで、キーを値にマップできます。以下は、マップ置換の例です。
substitutions:
secure-port:
true: int("443")
false: int("80")
secure-protocol:
true: SSL
false: HTTP
<!--NeedCopy-->
次の例は、マップsecure-portおよびsecure-protocolを使用する方法を示しています。
components:
-
name: my-lbvserver-comp
type: ns::lbvserver
properties:
name: $parameters.name + "-lb"
servicetype: $substitutions.secure-protocol[$parameters.is-secure]
ipv46: $parameters.ip
port: $substitutions.secure-port[$parameters.is-secure]
lbmethod: $parameters.lb-alg
<!--NeedCopy-->
つまり、StyleBookのユーザーがパラメーターis-secureにブール値「true」を指定するか、Citrix ADM GUIでこのパラメーターに対応するチェックボックスを選択した場合、このコンポーネントのservicetypeプロパティにはSSLという値が割り当てられ、ポートプロパティには値443が割り当てられます。 ただし、ユーザーがこのパラメーターに「false」を指定するか、Citrix ADM GUIの対応するチェックボックスをオフにすると、 servicetypeプロパティにはHTTPという値が割り当てられ 、ポートには80という値が割り当てられます。
次の例は、置換を関数として使用する方法を示しています。置換関数は1つまたは複数の引数を取ることができます。引数は、string、number、ipaddress、booleanなどの単純な型にする必要があります。
置換:
form-lb-name(name): $name + “-lb”
この例では、「name」という文字列引数を取り、それを使用して名前引数の文字列に「-lb」**という接尾辞を付けた新しい文字列を作成する置換関数「form-lb-name」 を定義します。この置換関数を使用する式は、次のように記述することができます。
$substitutions.form-lb-name(“my”)
これは、「my-lb」を返します。
別の例を考えてみましょう。
置換:
cspol-priority(priority): 10100 - 100 * $priority
置換cspol-priorityは、priorityという引数を受け取って値の計算に使用する関数です。StyleBookのほかの部分で、この置換を次の例に示すように使用できます。
components:
-
name: cspolicy-binding-comp
type: ns::csvserver_cspolicy_binding
condition: not $parameters.is-default
properties:
name: $parameters.csvserver-name
policyname: $components.cspolicy-comp.properties.policyname
priority: $substitutions.cspol-priority($parameters.pool.priority)
<!--NeedCopy-->
置換は、キーと値で構成することもできます。値には、単純な値、式、関数、マップ、一覧、またはディクショナリを指定できます。
以下は、値がリストである ‘slist’ という置換の例です。
substitutions:
slist:
- a
- b
- c
<!--NeedCopy-->
置換の値には、以下の「sdict」という置換の例に示すように、キーと値のペアのディクショナリも指定できます。
substitutions:
sdict:
a: 1
b: 2
c: 3
<!--NeedCopy-->
一覧とディクショナリを組み合わせると、もっと複雑な属性を作成できます。たとえば、「slistofdict」という名前の置換はキーと値のペアの一覧を返します。
slistofdict:
-
a: $parameters.cs1.lb1.port
b: $parameters.cs1.lb2.port
-
a: $parameters.cs2.lb1.port
b: $parameters.cs2.lb2.port
<!--NeedCopy-->
しかし、次の例では、置換「sdictoflist」はキーと値のペアを返します。ここでも値は別の一覧です。
sdictoflist:
a:
- 1
- 2
b:
- 3
- 4
<!--NeedCopy-->
コンポーネントでは、これらの置換はcondition、properties、repeat、repeat-condition構造で使用できます。
次のコンポーネントの例では、置換を使用してpropertiesを指定する方法を示します。
properties:
a: $substitutions.slist
b: $substitutions.sdict
c: $substitutions.slistofdict
d: $substitutions.sdictoflist
<!--NeedCopy-->
値が一覧またはディクショナリの置換を定義するユースケースは、コンテンツスイッチ仮想サーバーや複数の負荷分散仮想サーバーを構成する場合です。同一のcs仮想サーバーに関連付けされたすべてのlb仮想サーバーはまったく同じ構成を持つことができるため、置換一覧およびディクショナリを使用してこの構成を作成し、各lb仮想サーバーでの構成の繰り返しを避けることができます。
次の例では、コンテンツスイッチ仮想サーバー構成を作成するcs-lb-mon StyleBookの置換とコンポーネントを示します。cs-lb-mon StyleBookのプロパティを構成しながら、複雑な置換「lb-properties」でcs仮想サーバーに関連付けたlb仮想サーバーのプロパティを指定します。「lb-properties」置換は、名前、サービスの種類、仮想IPアドレス、ポート、サーバーをパラメーターとして取り、値としてキーと値のペアを生成する関数です。「cs-pools」コンポーネントで、この置換の値を各プールのlb-poolパラメーターに割り当てます。
substitutions:
cs-port[]:
true: int("80")
false: int("443")
lb-properties(name, servicetype, vip, port, servers):
lb-appname: $name
lb-service-type: $servicetype
lb-virtual-ip: $vip
lb-virtual-port: $port
svc-servers: $servers
svc-service-type: $servicetype
monitors:
-
monitorname: $name
type: PING
interval: $parameters.monitor-interval
interval_units: SEC
retries: 3
components:
-
name: cs-pools
type: stlb::cs-lb-mon
description: | Updates the cs-lb-mon configuration with the different pools provided. Each pool with rule result in a dummy LB vserver, cs action, cs policy, and csvserver_cspolicy_binding configuration.
condition: $parameters.server-pools
repeat: $parameters.server-pools
repeat-item: pool
repeat-condition: $pool.rule
repeat-index: ndx
properties:
appname: $parameters.appname + "-cs"
cs-virtual-ip: $parameters.vip
cs-virtual-port: $substitutions.cs-port($parameters.protocol == "HTTP")
cs-service-type: $parameters.protocol
pools:
-
lb-pool: $substitutions.lb-properties($pool.pool-name, "HTTP", "0.0.0.0", 0, $pool.servers)
rule: $pool.rule
priority: $ndx + 1
<!--NeedCopy-->
置換マップ:
キーを値にマップする置換を作成できます。たとえば、各プロトコル(キー)に使用するデフォルトポート(値)を定義するシナリオを考えてみましょう。このタスクでは、次のように置換マップを記述します。
substitutions:
port:
HTTP: 80
DNS: 53
SSL: 443
<!--NeedCopy-->
この例では、HTTPは80に、DNSは53に、SSLは443にマップされます。パラメーターとして与えられた特定のプロトコルのポートを取得するには、次の式を使用します。
$substitutions.port [$parameters.protocol]
この式は、ユーザーが指定したプロトコルに基づいて値を返します。
- キーがHTTPの場合、この式は80を返します。
- キーがDNSの場合、この式は53を返します。
- キーがSSLの場合、この式は443を返します。
- キーがマップ内に存在しない場合、この式はいずれの値も返しません。
共有
共有
この記事の概要
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.