eCDN Logpush フィルター

成功したレスポンスは 201 を返します。

次の表に、サポートされている比較演算子と、値の例を示します。

フィルターを追加するには、次の形式のエスケープされた JSON 文字列の形式でフィルター条件を指定します: {\"where\":{\"key"\:\"<field>\",\"operator\":\"<comparison_operator>\",\"value\":\"<value>\"}}

\“Key”\ フィールド値は、eCDN Logpush ログフィールド にリストされている利用可能なフィールドの 1 つに対応する必要があります。

名前演算子の表記法サポートされているフィールドタイプ
Equal (等しい)eqString, Int, Bool{\“where\":{\"key\":\"ClientRequestHost\",\"operator\":\"eq\",\"value\":\"example.com\"}}
Not equal (等しくない)!eqString, Int, Bool{\“where\":{\"key\":\"ClientCountry\",\"operator\":\"!eq\",\"value\":\"ca\"}}
Less than (より小さい)ltInt{\“where\":{\"key\":\"BotScore\",\"operator\":\"lt\",\"value\":\"30\"}}
Less than or equal (以下)leqInt{\“where\":{\"key\":\"BotScore\",\"operator\":\"leq\",\"value\":\"30\"}}
Greater than (より大きい)gtInt{\“where\":{\"key\":\"BotScore\",\"operator\":\"gt\",\"value\":\"30\"}}
Greater than or equal (以上)geqInt{\“where\":{\"key\":\"BotScore\",\"operator\":\"geq\",\"value\":\"30\"}}
Starts with (次の値で始まる)startsWithString{\“where\":{\"key\":\"ClientRequestPath\",\"operator\":\"startsWith\",\"value\":\"/foo\"}}
Ends with (次の値で終わる)endsWithString{\“where\":{\"key\":\"ClientRequestPath\",\"operator\":\"endsWith\",\"value\":\"/foo\"}}
Does not start with (次の値で始まらない)startsWithString{\“where\":{\"key\":\"ClientRequestPath\",\"operator\":\"!startsWith\",\"value\":\"/foo\"}}
Does not end with (次の値で終わらない)!endsWithString{\“where\":{\"key\":\"ClientRequestPath\",\"operator\":\"!endsWith\",\"value\":\"/foo\"}}
Contains (含む)containsString, Bool{\“where\":{\"key\":\"ClientRequestPath\",\"operator\":\"contains\",\"value\":\"/static\"}}
Does not contain (含まない)containsString, Bool{\“where\":{\"key\":\"ClientRequestPath\",\"operator\":\"!contains\",\"value\":\"/static\"}}
Value is in a set of values (値は値のセット内にあり)inString, Int, Array{\“where\":{\"key\":\"EdgeResponseStatus\",\"operator\":\"in\",\"value\":[200,201]}}
Value is not in a set of values (値は値のセット内になし)inString, Int, Array{\“where\":{\"key\":\"EdgeResponseStatus\",\"operator\":\"!in\",\"value\":[200,201]}}
  • フィルターは、AND, OR 論理演算子を使用して接続できます。
  • 論理演算子はネストできます。

ここで、論理演算子を実装する方法の例をいくつか示します。X、Y、Z はフィルター条件を表すために使用されます。

  • X AND Y AND Z - {"where":{"and":[{X},{Y},{Z}]}}
  • X OR Y OR Z - {"where":{"or":[{X},{Y},{Z}]}}
  • X AND (Y OR Z) - {"where":{"and":[{X}, {"or":[{Y},{Z}]}]}}
  • (X AND Y) OR Z - {"where":{"or":[{"and": [{X},{Y}]},{Z}]}}

この例では、ログに “/example-path” が含まれる ClientRequestPath があり、かつ EdgeResponseStatus に 502、503、および 504 が含まれる場合のみ、eCDN logpush ジョブはログを S3 バケットに送信します。