アプリケーションポリシーの優先順位

Access Gatewayアプリは複数のポリシーを持つことができます。各ポリシーは、URIやルールタイプなどの情報が含まれるリソースパスと関連付けられます。複数のポリシーを持つアプリのリクエストを受信すると、ポリシーは優先順位に従って評価されます。

一般的に、ポリシーは次の順に評価されます。

  • カスタムポリシー:カスタムポリシーは、入力の時系列順に最初に評価されます。処理は、最初に追加されたポリシーから開始され、最近追加されたポリシーまで続きます。
  • 長いもの順:/a/b/cは、/a/bの前に評価されます。
  • 末尾のトラッシュの有無:末尾に/(スラッシュ)があるリソースパスは、完全一致として扱われます。末尾に /(スラッシュ)がないリソースパスはプレフィックスとして扱われます。たとえば、/rest/restaurantに一致しますが、/rest/は一致しません。
  • ポリシーの長さが同じ場合、大文字/小文字を区別するポリシーは、区別しないポリシーより先に評価されます。
  • /」の適用によって指定されるデフォルトポリシー。

一般に、並べ替え順序は次の原則に従います。

  1. URI内の要素の総数:たとえば、/a/b/cには、リソースパス内に「/」(スラッシュ)で分割された3つの要素があります。
  2. 大文字と小文字の区別:大文字と小文字が区別されるポリシーは、同数の要素を持つ大文字と小文字が区別されないポリシーの前に並べられます。
  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/b/c

/a:一致しません。
/a/b:一致しません。
/a/b/c:一致します。

/a:一致しません。
/a/b:一致しません。
/a/b/c:一致します(大文字/小文字ルールがない場合)。

URIルール:/a/b
例:/a/b
/a:一致しません。
/a/b:一致します。
/a:一致しません。
/a/b:一致します(大文字/小文字ルールがない場合)。

URIルール:/a
例:/a

/a:一致します。
/A:一致しません。
/a/b:一致しません。

/a:一致します(大文字/小文字ルールがない場合)。
/A:一致します。
/a/b:一致しません。

デフォルト(「/」)ルール それ以前のルールで一致しなかったものに一致します。

/uriはプレフィックスとみなされ、/uriで始まるすべてのパスに一致します。/uri/(末尾のスラッシュあり)は完全一致であり、正確なURI文字列に一致します。

次に、優先度の順にその他の例を示します。

URI

大文字と小文字を区別

コメント

/a/b/c

はい

大文字と小文字を区別するエントリは、大文字と小文字を区別しない同一URIよりも優先されます。

/a/b/c

いいえ

/a/f

はい

どちらも大文字/小文字を区別としてマークされ、要素数も同じ(2)であるため、辞書式に並べられます。

/a/b

はい

/a/e

いいえ

どちらも大文字/小文字を区別しないとしてマークされ、要素数も同じ(2)であるため、辞書式に並べられますが、大文字/小文字の区別の後に2つの要素ルールがあります。

/a/b

いいえ

/a

いいえ