アプリケーションポリシーの優先順位
Access Gatewayアプリは複数のポリシーを持つことができます。各ポリシーは、URIやルールタイプなどの情報が含まれるリソースパスと関連付けられます。複数のポリシーを持つアプリのリクエストを受信すると、ポリシーは優先順位に従って評価されます。
一般的に、ポリシーは次の順に評価されます。
- カスタムポリシー:カスタムポリシーは、入力の時系列順に最初に評価されます。処理は、最初に追加されたポリシーから開始され、最近追加されたポリシーまで続きます。
- 長いもの順:/a/b/cは、/a/bの前に評価されます。
- 末尾のトラッシュの有無:末尾に/(スラッシュ)があるリソースパスは、完全一致として扱われます。末尾に /(スラッシュ)がないリソースパスはプレフィックスとして扱われます。たとえば、/restは/restaurantに一致しますが、/rest/は一致しません。
- ポリシーの長さが同じ場合、大文字/小文字を区別するポリシーは、区別しないポリシーより先に評価されます。
- 「/」の適用によって指定されるデフォルトポリシー。
一般に、並べ替え順序は次の原則に従います。
- URI内の要素の総数:たとえば、/a/b/cには、リソースパス内に「/」(スラッシュ)で分割された3つの要素があります。
- 大文字と小文字の区別:大文字と小文字が区別されるポリシーは、同数の要素を持つ大文字と小文字が区別されないポリシーの前に並べられます。
- 辞書式:その上で、ポリシーはアルファベット順に並べられます。
次に、ポリシーURIとその動作の例を示します。
URIルールと例 | 大文字と小文字を区別 | 大文字と小文字を区別しない |
---|---|---|
カスタム | 他のすべてのURIポリシーの前に評価されます。 元の入力順に評価されます。 [Resource Path(リソースパス)]内の正規表現が含まれる場合があります。 |
|
URIルール:/a/b/C 例:/a/b/C |
/a:一致しません。 /a/b:一致しません。 /a/b/c:一致しません。 |
/a:一致しません。 /a/b:一致しません。 /a/b/c:一致します(大文字/小文字ルールがない場合)。 /a/b/C:一致します |
URIルール:/a/b/C |
/a:一致しません。 |
/a:一致しません。 |
URIルール:/a/b 例:/a/b |
/a:一致しません。 /a/b:一致します。 |
/a:一致しません。 /a/b:一致します(大文字/小文字ルールがない場合)。 |
URIルール:/a |
/a:一致します。 |
/a:一致します(大文字/小文字ルールがない場合)。 |
デフォルト(「/」)ルール | それ以前のルールで一致しなかったものに一致します。 |
/uriはプレフィックスとみなされ、/uriで始まるすべてのパスに一致します。/uri/(末尾のスラッシュあり)は完全一致であり、正確なURI文字列に一致します。
次に、優先度の順にその他の例を示します。
URI |
大文字と小文字を区別 |
コメント |
---|---|---|
/a/b/c |
はい |
大文字と小文字を区別するエントリは、大文字と小文字を区別しない同一URIよりも優先されます。 |
/a/b/c |
いいえ |
|
/a/f |
はい |
どちらも大文字/小文字を区別としてマークされ、要素数も同じ(2)であるため、辞書式に並べられます。 |
/a/b |
はい |
|
/a/e |
いいえ |
どちらも大文字/小文字を区別しないとしてマークされ、要素数も同じ(2)であるため、辞書式に並べられますが、大文字/小文字の区別の後に2つの要素ルールがあります。 |
/a/b |
いいえ |
|
/a |
いいえ |