Azure Content Delivery Network from Edgio Premium ルール エンジンのリファレンス
この記事では、Azure コンテンツ配信ネットワークのルール エンジンで使用できる一致条件と機能について詳しく説明します。
ルール エンジンは、特定の種類の要求がコンテンツ配信ネットワークによって処理される方法について、最終的な決定を下すように設計されています。
一般的な使用法:
- カスタムのキャッシュ ポリシーをオーバーライドまたは定義します。
- 機密性の高いコンテンツに対する要求をセキュリティで保護するか拒否します。
- 要求をリダイレクトします。
- カスタム ログ データを保存します。
主要な概念
この記事では、ルール エンジンの設定に関する主要な概念について説明します。
ドラフト
ポリシーのドラフトは、要求とそれに適用される一連のアクションを識別するための 1 つまたは複数のルールで構成されます。 ドラフトとは、サイトのトラフィックに影響を与えることなく頻繁に構成を更新できるようにする、進行中の作業のことです。 ドラフトを完成させる準備ができたら、読み取り専用ポリシーに変換する必要があります。
ルール
ルールでは、1 つまたは複数の種類の要求と、それらに適用される一連のアクションが示されます。
構成は次のとおりです。
- 要求が識別されるロジックを定義する一連の条件式。
- 要求を識別するために使用される条件を定義する一連の一致条件。
- コンテンツ配信ネットワークによる上記の要求の処理方法を定義する一連の機能。 次の図では、これらの要素が示されています。
ポリシー
一連の読み取り専用ルールで構成されるポリシーでは、以下のことのための手段が提供されます。
- ルールの複数のバリエーションを作成、保存、管理する。
- 以前にデプロイしたバージョンにロールバックする。
- イベント固有のルールを事前に準備する (たとえば、顧客が開始したメンテナンスの結果としてトラフィックをリダイレクトするルール)。
Note
環境ごとに許可されるポリシーは 1 つだけですが、必要に応じてポリシーをデプロイできます。
デプロイ要求
デプロイ要求では、ステージングまたは運用環境にポリシーを迅速に適用できる、簡単で合理化された手順が提供されます。 これらの環境に適用された変更の追跡を容易にするため、デプロイ要求の履歴が提供されています。
注意
自動検証およびエラー検出システムを通過しない要求についてのみ、手動による確認と承認が必要になります。
ルールの優先順位
ポリシーに含まれるルールは、通常、一覧の順序 (たとえば、上から下) で処理されます。 要求が競合する複数のルールと一致した場合は、最後に処理されるルールが優先されます。
ポリシーのデプロイのワークフロー
次の図では、運用またはステージング環境にポリシーを適用するワークフローを示します。
手順 | 説明 |
---|---|
ドラフトを作成する | ドラフトは、コンテンツの要求をコンテンツ配信ネットワークで処理する方法が定義されている一連のルールで構成されます。 |
ドラフトをロックする | ドラフトが完成したら、ロックし、読み取り専用ポリシーに変換する必要があります。 |
デプロイ要求を送信する | デプロイ要求を使って、ポリシーをテスト トラフィックまたは運用トラフィックに適用できます。 ステージング環境または運用環境のいずれかにデプロイ要求を送信します。 |
デプロイ要求のレビュー | デプロイ要求の自動検証とエラー検出が行われます。 デプロイ要求の大部分は自動的に承認されますが、より複雑なポリシーの場合は手動で確認する必要があります。 |
ポリシーのデプロイ (ステージング) | ステージング環境へのデプロイ要求が承認されたら、ステージング環境にポリシーが適用されます。 この環境では、モック サイト トラフィックに対してポリシーをテストできます。 ポリシーをライブ サイト トラフィックに適用する準備ができたら、運用環境に対する新しいデプロイ要求を送信する必要があります。 |
ポリシーのデプロイ (運用) | 運用環境へのデプロイ要求が承認されたら、運用環境にポリシーが適用されます。 この環境では、ポリシーは、コンテンツ配信ネットワークでライブ トラフィックを処理する方法について最終的な決定を下すものとして機能することができます。 |
構文
特殊文字が扱われる方法は、一致条件または機能でテキスト値を処理する方法によって異なります。 一致条件または機能では、次のいずれかの方法でテキストが解釈される場合があります。
リテラル値
リテラル値として解釈されるテキストでは、% 記号を除くすべての特殊文字が、一致する必要のある値の一部として扱われます。 つまり、\'*'\
に設定されたリテラルの一致条件は、完全に一致する値 (つまり、\'*'\
) が見つかった場合にのみ満たされます。
パーセント記号は、URL エンコードを示すために使用されます (例: %20
)。
ワイルドカード値
ワイルドカード値として解釈されるテキストでは、特殊文字にその他の意味が割り当てられます。 次の表は、以下の一連の文字がどのように解釈されるのかを示しています。
文字 | 説明 |
---|---|
\ | バックスラッシュは、このテーブルで指定されているすべて文字からのエスケープに使用されます。 エスケープする特殊文字の直前にバックスラッシュを指定する必要があります。 たとえば、次の構文では、アスタリスクをエスケープします。 \* |
% | パーセント記号は、URL エンコードを示すために使用されます (例: %20 )。 |
* | アスタリスクは、1 つまたは複数の文字を表すワイルドカードです。 |
Space | 空白文字は、指定した値とパターンのいずれかで一致条件が満たされることを示します。 |
'値' | 一重引用符には、特別な意味はありません。 ただし、一連の一重引用符することで、値はリテラル値として扱われることを示します。 次のように使用できます。 - 指定した値が比較対象値の任意の部分と一致するたびに、一致条件を満たすようにします。 たとえば、 'ma' は、次の文字列のいずれかと一致します。/business/marathon/asset.htm map.gif /business/template.map - 特殊文字をリテラル文字として指定できます。 たとえば、空白文字を単一引用符で囲むと、リテラルの空白文字を指定できます (つまり、 ' ' または 'sample value' )。- 空白の値を指定できます。 一重引用符のセット ('') を指定することで、空白の値を指定します。 重要: - 指定した値にワイルドカードが含まれていない場合は、自動的にリテラル値と見なされるので、一重引用符のセットを指定する必要はありません。 - バックスラッシュがこの表の別の文字をエスケープしない場合は、一重引用符のセット内に指定すると無視されます。 - 特殊文字をリテラル文字として指定するもう 1 つの方法は、バックスラッシュ ( \ ) を使用してエスケープすることです。 |
正規表現
正規表現では、テキスト値内で検索するパターンを定義します。 正規表現の表記は、さまざまなシンボルに特定の意味を定義します。 次のテーブルでは、特殊文字が一致条件や正規表現をサポートする機能によってどのように扱われるかが示されます。
特殊文字 | 説明 |
---|---|
\ | バックスラッシュは、その後の文字をエスケープします。これにより、その文字は、正規表現の意味としてではなく、リテラル値として扱われます。 たとえば、次の構文では、アスタリスクをエスケープします。\* |
% | パーセント記号の意味は、その使用法によって異なります。%{HTTPVariable} :この構文では、HTTP 変数を識別します。%{HTTPVariable%Pattern} :この構文では、区切り記号として、また HTTP 変数を識別するために、パーセント記号を使用します。\% :パーセント記号をエスケープすると、リテラル値として使用したり、URL エンコードを示したりすることができます (例: \%20 )。 |
* | アスタリスクでは、直前の文字を 0 回以上一致すことができます。 |
Space | 空白文字は一般的にリテラル文字として扱われます。 |
'値' | 一重引用符は、リテラル文字として扱われます。 一重引用符のセットには、特別な意味はありません。 |
正規表現をサポートする一致条件と機能は、Perl Compatible Regular Expressions (PCRE) で定義されているパターンを受け入れます。