EdgeScript のビルトイン関数は、リクエストメタデータの確認や URL の書き換えから、データの暗号化やキャッシュ TTL の制御まで、エッジノードのあらゆる操作をカバーします。次の表に、13 種類の関数のカテゴリと、各カテゴリで利用可能な関数を示します。
| カテゴリ | 説明 | 関数 |
|---|---|---|
| 論理関数 | ブール条件を評価し、組み合わせます | and, or, not, eq, ne, null |
| 数値関数 | 算術演算と数値比較を実行します | add, sub, mul, div, mod, gt, ge, lt, le, floor, ceil |
| 文字列関数 | 文字列値を操作、照合、変換します | substr, concat, upper, lower, len, byte, match_re, capture_re, gsub_re, split, split_as_key, tohex, tostring, tochar, reverse, find, format, tobin, trim |
| 辞書関数 | キーバリュー辞書のエントリを読み書きします | set, get, foreach, del |
| リクエスト処理関数 | リクエストヘッダーとレスポンスヘッダーの変更、URL の書き換え、出力の制御を行います | add_req_header, del_req_header, add_rsp_header, del_rsp_header, encode_args, decode_args, rewrite, say, print, exit, get_rsp_header, add_rsp_cookie |
| スロットリング関数 | クライアントに送信されるデータのレートを制限します | limit_rate_after, limit_rate |
| キャッシュ関数 | エッジノードのレスポンスのキャッシュ TTL を上書きします | set_cache_ttl |
| 時間関数 | さまざまなフォーマットのタイムスタンプを取得し、変換します | today, time, now, localtime, utctime, cookie_time, http_time, parse_http_time, unixtime |
| 暗号アルゴリズム関数 | AES、SHA、HMAC、MD5 を使用してデータを暗号化、復号、ハッシュ化します | aes_new, aes_enc, aes_dec, sha1, sha2, hmac, hmac_sha1, md5, md5_bin |
| JSON 関数 | JSON データをエンコードおよびデコードします | json_enc, json_dec |
| その他の関数 | Base64 と URL エンコーディングを使用してデータをエンコードおよびデコードし、ランダム値を生成し、チェックサムを計算します | base64_enc, base64_dec, url_escape, url_unescape, rand, rand_hit, crc, tonumber, base64_enc_safe, base64_dec_safe, randomseed |
| 配列関数 | 配列を作成および操作します | arr_concat, arr_insert, arr_remove, arr_sort, arr_len |
| リクエストロジック関数 | クライアントの IP アドレス、ISP、地理的位置、URI、ヘッダー、Cookie などのリクエストメタデータを確認します | server_addr, server_port, client_addr, client_country, client_region, client_isp, ip_country, ip_region, ip_isp, req_uri, req_uri_basename, req_uri_ext, req_uri_seg, req_uri_arg, req_uri_query_string, req_scheme, req_method, req_host, req_user_agent, req_referer, req_cookie, req_first_x_forwarded, req_header, req_id |