

Amazon Fraud Detector は、2025 年 11 月 7 日をもって新規顧客に公開されなくなりました。Amazon Fraud Detector と同様の機能については、Amazon SageMaker、AutoGluon、および を参照してください AWS WAF。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ルール言語リファレンス
<a name="rule-language-reference"></a>

次のセクションでは、Amazon Fraud Detector の式 (ルールの書き込み) 機能の概要を説明します。

## 変数の使用
<a name="using-variables"></a>

評価されたイベントタイプで定義されている変数は、式の一部として使用できます。変数を示すには、ドル記号を使用します。

```
$example_variable < 100
```

## リストの使用
<a name="using-lists"></a>

変数タイプに関連付けられ、ルール式の一部としてエントリが入力されている任意のリストを使用できます。ドル記号を使用して、リストエントリ値を示します。

```
$example_list_variable in @list_name
```

## 比較、メンバーシップ、およびアイデンティティ演算子
<a name="compare-id-ops"></a>

Amazon Fraud Detector には、>、>=、<、<=、\!=、==、in、not in の比較演算子が含まれています。

次に例を示します。

例: <

```
$variable < 100
```

例: in、not in

```
$variable in [5, 10, 25, 100]
```

例: \!=

```
$variable != "US"
```

例: ==

```
$variable == 1000
```

**演算子テーブル**


| オペレーター | Amazon Fraud Detector 演算子 | 
| --- | --- | 
| 等しい  | == | 
| 等しくない  | \!= | 
| 超 | > | 
| 未満 | < | 
| 以上 | >= | 
| 以下 | <= | 
| 中 | 中 | 
| And | and | 
| Or | or | 
| Not | \! | 

## 基本的な数学
<a name="basic-math"></a>

式には基本的な数学演算子 (\+、-、\*、/など) を使用できます。代表的なユースケースには、評価中に変数を組み合わせる必要があるときです。

以下のルールでは、変数 `$variable_1` に `$variable_2` を追加し、合計が 10 未満かどうかをチェックしています。

```
$variable_1 + $variable_2 < 10
```

**基本的な数学テーブルデータ**


| オペレーター | Amazon Fraud Detector 演算子 | 
| --- | --- | 
| \+ (足し算) | \+ | 
| - (引き算) | - | 
| Multiply | \* | 
| Divide | / | 
| モジュロ | % | 

## 正規表現 (regex)
<a name="reg-expressions"></a>

正規表現を使用して、式の一部として特定のパターンを検索できます。これは、変数の 1 つに特定の文字列または数値を一致させる場合に特に便利です。Amazon Fraud Detector は、正規表現を使用する場合にのみ一致をサポートします (例えば、指定された文字列が正規表現と一致するかどうかによって True/False を返します)。Amazon Fraud Detector の正規表現のサポートは、Javaの.matches() に基づいています (RE2J 正規表現ライブラリを使用)。インターネットには、さまざまな正規表現パターンのテストに役立つウェブサイトがいくつかあります。

以下の最初の例では、まず変数 `email` を小文字に変換します。次に、パターン `@gmail.com` が `email` 変数内にあるかどうかをチェックします。文字列 `.com` を明示的にチェックできるように、2 番目のピリオドがエスケープされていることに注目してください。

```
regex_match(".*@gmail\.com", lowercase($email))
```

2 番目の例では、変数 `phone_number` に国コード `+1` が含まれているかどうかをチェックして、電話番号が米国からのものかどうかを判断します。文字列 `+1` を明示的にチェックできるように、プラス記号がエスケープされています。

```
regex_match(".*\+1", $phone_number)
```

**正規表現テーブル**


| オペレーター | Amazon Fraud Detector の例 | 
| --- | --- | 
| 以下で始まる任意の文字列に一致 | regex\_match("^mystring", $variable) | 
| 文字列全体を正確に一致 | regex\_match("mystring", $variable) | 
| 改行以外の任意の文字に一致 | regex\_match(".", $variable) | 
| 改行前の 'mystring' 以外の任意の数の文字に一致 | regex\_match(".\*mystring", $variable) | 
| 特殊文字のエスケープ | \\ | 

## 欠落している値のチェック
<a name="missing-variables"></a>

場合によっては、値が欠落しているかどうかをチェックすることが有益です。Amazon Fraud Detector では、これは null で表されます。これを行うには、次の構文を使用します。

```
$variable != null
```

同様に、値が存在しないかどうかをチェックする場合は、以下を行えます。

```
$variable == null
```

## 複数の条件
<a name="multi-cond"></a>

`and` と `or` を使用して、複数の式を組み合わせることができます。Amazon Fraud Detector は、真の値が 1 つ見つかったときに `OR` 式で停止し、偽の値が 1 つ見つかったときに `AND` で停止します。

次の例では、`and` 条件を使用して 2 つの条件をチェックしています。最初のステートメントでは、変数 1 が 100 未満かどうかをチェックしています。2 つ目のステートメントでは、変数 2 が米国ではないかどうかをチェックしています。

ルールは `and` を使用していることを考えると、条件全体が TRUE と評価されるためには、両方とも TRUE でなければなりません。

```
$variable_1 < 100 and $variable_2 != "US"
```

括弧を使用して、次のようにブール演算をグループ化することができます。

```
$variable_1 < 100 and $variable_2 != "US" or ($variable_1 * 100.0 > $variable_3)
```

## その他の式タイプ
<a name="expressions"></a>

### DateTime 関数
<a name="date-time"></a>


| 関数 | 説明 | 例 | 
| --- | --- | --- | 
| getcurrentdatetime() | ルール実行の現在の時刻を ISO8601 UTC 形式で指定します。getepochmilliseconds(getcurrentdatetime()) を使用して追加のオペレーションを実行できます。 | getcurrentdatetime() == "2023-03-28T18:34:02Z" | 
| isbefore(DateTime1、DateTime2) | 発信者 DateTime1 が DateTime2 より前の場合、ブール値 (True/False) を返します | isbefore(getcurrentdatetime(), "2019-11-30T01:01:01Z") == "False"<br />isbefore(getcurrentdatetime(), "2050-11-30T01:05:01Z") == "True" | 
| isafter(DateTime1,DateTime2) | 発信者 DateTime1 が DateTime2 より後の場合、ブール値 (True/False) を返します | isafter(getcurrentdatetime(), "2019-11-30T01:01:01Z") == "True"<br />isafter(getcurrentdatetime(), "2050-11-30T01:05:01Z") == "False" | 
| getepochmilliseconds(DateTime) | DateTime を取得し、その DateTime をエポックミリ秒単位で返します。日付に数学演算を実行するのに便利です | getepochmilliseconds("2019-11-30T01:01:01Z") == 1575032461 | 

### 文字列演算子
<a name="string-ops"></a>


| オペレーター | 例 | 
| --- | --- | 
| 文字列を大文字に変換 | uppercase($variable) | 
| 文字列を小文字に変換 | lowercase($variable) | 

### その他
<a name="other"></a>


| オペレーター | Comment | 
| --- | --- | 
| コメントを追加する | \# 自分のコメント | 