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 式を使用して文字列の一部を置き換えることができるようになりました。これらの文字列式が StyleBook コンパイラによって評価されると、StyleBook 式を使用する文字列の一部が式の値に置き換えられます。文字列に StyleBook 式を含めるには、次の表記法を使用します。
"...%{...}%..."
<!--NeedCopy-->
「% {」と「}%」で囲まれた文字は、StyleBook式を形成します。こうした式は、「インプレース補間」と呼ばれます。
たとえば、 lb-%{$parameters.appname}%-svc
文字列は StyleBook 式のインプレース補間を含む文字列式です。文字列式の値は、補間式の値によって異なります。$parameters.appname に「app1」が割り当てられていることを考えてみましょう。次に、この文字列式は lb-app1-svcと評価されます。この機能を使用することで、値を文字列式に直接入力するのではなく、ユーザー定義値に応じて決めることができます。
インプレース補間の実用的な使用例としては、StyleBookのポリシー式のパラメーター化があります。HTTP URLに特定の語句(この例では「jpeg」)が含まれているかどうかをチェックするポリシー式を記述するシナリオを考えます。
この場合、記述するポリシー式は「HTTP.REQ.URL.CONTAINS(\“jpeg\”)」となります。
さて、HTTP URLでオブジェクトをパラメータ化したい場合は、StyleBookに文字列パラメータを追加することができます($parameters.url-object
など)。ポリシー式は、このパラメータに基づいて記述されます。この目的を達成するには、文字列連結を使用します。式は次のようになります。
str("HTTP.REQ.URL.CONTAINS(\\"" + $parameters.url-object + "\\")")
<!--NeedCopy-->
$parameter.url-object
に「csv」 が割り当てられている場合、上記の式は”HTTP.REQ.URL.CONTAINS (\“csv\”)”と評価されます。しかし、こうした式は読みにくいものです。インプレース補間を使用することで、こうしたパラメーター化を読みやすくわかりやすいものにすることができます。
インプレース補間を使用した式は次のようになります。
str("HTTP.REQ.URL.CONTAINS(%{quotewrap($parameters.url-object)}%)")
<!--NeedCopy-->
上記の式では、インプレース補間を使用して$parameters.url-objectの値の前後に内部引用を追加しています。この式の結果は上記と同じですが、より直感的で実際の結果に近いように見えます。
補間式内で使用できる型
補間の内部で値を生成する式を使用できます:ブール、数値、 tcp-port
、ipaddress
、および文字列。生成された値は、補間式が結果に置き換えられるときに自動で文字列へ変換されます。
文字列式には補間を含めないことも、1個以上の補間を含めることもできます。順次補間で、文字列式の各部分を異なるStyleBook式に置き換えることができます。たとえば、文字列lb-%{$parameters.appname}%-%{$parameters.vip}%では、$parameters.appnameが「app1」、$parameters.vipが「1.1.1.1」の場合、lb-app1-1.1.1.1が返されます。
文字列式は、ネストされた補間もサポートします。つまり、補間式を別の補間式の内側に入れ子にして、ある式の値を別の式の入力にすることができます。
たとえば、「% {lb-% {$parameters.port + 1}%}%」という文字列を考えてみましょう。
$parameters.port が 80 の場合、内部文字列「% {$parameters.port + 1}%」は「lb-81」を返します。ここでは、この式は別の補間式の中に入れ子になっています。
以下の表に、さまざまな種類の補間を例と対応する結果とともに示します。例で使用されているパラメータの値は次のとおりです。
- $parameters.appname: “lb1”
- $parameters.vip: “1.1.1.1”
- $parameters.n1: 1
- $parameters.n2: 3
単純な補間
式 | 結果 |
---|---|
lb-%{$parameters.appname}%-def |
lb-lb1-def |
自動型変換
式 | 結果 |
---|---|
lb-%{1}% | lb-1 |
lb-%{$parameters.vip}% | lb-1.1.1.1 |
lb-%{true}% | lb-True |
順次補間
式 | 結果 |
---|---|
% {$parameters.appname} %-% {str ($parameters.appname)}% | lb1-lb1 |
lb-%{1}%-%{2}% | lb-1-2 |
入れ子補間
式 | 結果 |
---|---|
%{abc-%{$parameters.n1 + 1}%}% |
abc-2 |
str("%{abc-%{$parameters.n1}%}%-%{$parameters.n2}%") |
bc-1-3 |
quotewrap
による補間
式 | 結果 |
---|---|
str("%{quotewrap(abcd)}%")
str("%{quotewrap(https://)}%+HTTP.REQ.HOSTNAME+HTTP.REQ.URL")
|
"abcd
<https://"+HTTP.REQ.HOST NAME+HTTP.REQ.URL
|
補間式のエスケープ文字列
文字「% {」または「}%」が文字列の一部である場合、StyleBookコンパイラがこれらを補間タグとして評価しないように、エスケープ文字として”\
” を指定する必要があります。
例:
str("%{\%\{ + str($parameters.vip) + \}\%}%") returns "%{1.1.1.1}%" if $parameters.vip is 1.1.1.1
以下の表に、その他の式と結果を示します。
|カテゴリ|式|結果|
|—|—|—|
|補間のエスケープ|str("%{str($parameters.n1) + \}\%}%")
|1}%
|
| |lb-%{str($parameters.n1) + \}\%}%
|lb-1}%
|
| |"%{str($parameters.n1) + \\"\\}\\%\\"}%"|1}%
|
共有
共有
この記事の概要
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.