EdgeScript の組み込み変数は通常、NGINX 変数に直接マッピングされており、スクリプトからリクエストプロパティ (URI、クエリパラメーター、ヘッダー、Cookie、クライアント IP アドレス、プロトコルの詳細) に読み取り専用でアクセスできます。
組み込み変数は読み取り専用です。値を代入しないでください。
ドル記号 ($) のプレフィックスは、変数が組み込み変数であることを示します。ビジネスロジックで必要な場合は、$ のプレフィックスを省略できます。
変数数の上限
1 つのスクリプトで使用できる変数は最大 200 個です。ルールでこれを超える場合は、ロジックを複数のユーザー定義関数に分割してください。各ユーザー定義関数に含める変数は、200 個以内にする必要があります。例については、関数の分割をご参照ください。
変数名のハイフンの扱い
3 つの組み込み変数 ( $arg_{name}、$http_{name}、$cookie_{name} ) は、クエリ文字列キー、リクエストヘッダーフィールド、または Cookie フィールドを指定するために {name} プレースホルダーを使用します。各変数でのハイフンの扱いは次のとおりです:
変数 | ハイフンの扱い |
|
|
| ハイフンをアンダースコアに置き換えます。例: |
|
|
組み込み変数
変数 | 説明 | NGINX 変数 |
| クエリ文字列内の |
|
| リクエストヘッダー内の |
|
| リクエストの Cookie ヘッダー内の |
|
| プロトコルタイプ |
|
| プロトコルバージョン |
|
| 元のホスト |
|
| 元の URI | なし |
| 先頭の |
|
| リクエストメソッド |
|
| 完全なリクエスト URI。 |
|
| ポイントオブプレゼンス (POP) への接続に使用するクライアント IP アドレス |
|
例: $arg_{name} と $args
次のリクエスト http://example.aliyundoc.com/1k.file?k1=v1&k2=v2 の場合:
$arg_k1はv1を返します。$argsはk1=v1&k2=v2(先頭の?を除いた完全なクエリ文字列) を返します。
関数の分割
ルールに 200 個を超える変数が含まれる場合は、元の関数を複数のユーザー定義関数に分割してください。各ユーザー定義関数に含める変数は、200 個以内にする必要があります。
# 変数が上限を超える場合は、次のように分割します。
def judeg_arg() {
# パラメーター判定のロジック
x
x
}
def judeg_time() {
# 時間判定のロジック
x
x
}
def judeg_token() {
# 暗号化判定のロジック
x
x
}
judeg_arg()
judeg_time()
judeg_token()