リクエストロジック関数は、サーバーとクライアントのアドレス、クライアントの位置情報、リクエスト URI、リクエストヘッダーなど、現在のリクエストの属性を返します。以降のセクションでは、各関数の構文、パラメーター、コード例、戻り値について説明します。
関数インデックス
次の表は、リクエストロジック関数をカテゴリ別に一覧表示し、各関数が返す値と受け入れるパラメーターを示しています。
| カテゴリ | 関数 | 戻り値 | パラメーター |
| サーバー属性 | server_addr | 現在のリクエストを受信したサーバーのアドレス。 | なし |
| サーバー属性 | server_port | 現在のリクエストを受信したサーバーのポート。 | なし |
| クライアント属性 | client_addr | クライアント IP アドレス。 | なし |
| クライアント属性 | client_port | クライアントポート。 | なし |
| クライアントの地理的位置情報 | client_country | クライアント IP アドレスの国またはリージョンコード。 | なし |
| クライアントの地理的位置情報 | client_region | クライアント IP アドレスの行政区画 (省または市) コード。 | なし |
| クライアントの地理的位置情報 | client_city | クライアント IP アドレスの都市コード。 | なし |
| クライアントの地理的位置情報 | client_isp | クライアント IP アドレスの ISP コード。 | なし |
| 指定された IP アドレスの地理的位置情報 | ip_country | 指定された IP アドレスの国またはリージョンコード。 | ipaddr |
| 指定された IP アドレスの地理的位置情報 | ip_region | 指定された IP アドレスの行政区画 (省または市) コード。 | ipaddr |
| 指定された IP アドレスの地理的位置情報 | ip_city | 指定された IP アドレスの市コード。 | ipaddr |
| 指定された IP アドレスの地理的位置情報 | ip_isp | 指定された IP アドレスの ISP コード。 | ipaddr |
| URI 解析 | req_uri | クエリパラメーターを除くリクエスト URI。 | [pattern] |
| URI 解析 | req_uri_basename | リクエスト URI 内のファイル名。 | [pattern] |
| URI 解析 | req_uri_ext | リクエスト URI 内のファイル拡張子。 | [pattern] |
| URI 解析 | req_uri_seg | スラッシュ (/) で分割されたリクエスト URI のセグメント。 | [idx] |
| URI 解析 | req_uri_arg | 指定された URI パラメーターの値。 | name, [pattern] |
| URI 解析 | req_uri_query_string | 疑問符 (?) を除くリクエストのクエリパラメーター。 | [pattern] |
| リクエスト行とヘッダー | req_scheme | リクエストスキーム。 | [pattern] |
| リクエスト行とヘッダー | req_method | リクエストメソッド。 | [pattern] |
| リクエスト行とヘッダー | req_host | Host リクエストヘッダーの値。 | [pattern] |
| リクエスト行とヘッダー | req_user_agent | User-Agent リクエストヘッダーの値。 | [pattern] |
| リクエスト行とヘッダー | req_referer | Referer リクエストヘッダーの値。 | [pattern] |
| リクエスト行とヘッダー | req_cookie | 指定された Cookie の値。 | name, [pattern] |
| リクエスト行とヘッダー | req_first_x_forwarded | X-Forwarded-For リクエストヘッダーの最初のアドレス。 | [pattern] |
| リクエスト行とヘッダー | req_header | 指定されたリクエストヘッダーの値。 | name, [pattern] |
| リクエスト識別子 | req_id | 現在のリクエストのリクエスト ID。 | なし |
注意事項
このトピックの 9 つの関数には、次の制限が適用されます:client_addr、client_country、client_region、client_city、client_isp、ip_country、ip_region、ip_city、ip_isp。
クライアントアドレスがインターネットサービスプロバイダー (ISP) のネットワーク NAT ポリシーによって変更された場合、または IP アドレスが CDN IP アドレスライブラリにない場合、これらの関数の実際の戻り値は影響を受けます。これらの関数は注意して使用してください。
パターンマッチング
構文に [pattern] が含まれる関数は、オプションの pattern パラメーターを受け入れます。pattern を指定すると、関数は読み取った値を pattern と照合し、値自体ではなくブール値の結果を返します。
pattern は 2 つのマッチングモードをサポートしています:
完全一致 — 値と
patternが等しいかどうかを比較します。これはデフォルトのモードです。単一の固定値を確認するために使用します。正規表現一致 —
re:をプレフィックスとして付け、patternを正規表現として使用します。値のセットを照合するために使用します。
サーバー属性
server_addr と server_port は、現在のリクエストを受信したサーバーの属性を読み取ります。
server_addr
server_addr は、現在のリクエストを受信したサーバーのアドレスを読み取ります。
構文 —
server_addr()パラメーター — なし。
戻り値 — サーバーアドレスを返します。データ型:文字列。
次の例は、server_addr の使用方法を示しています:
s_addr = server_addr()
say(concat('s_addr:', s_addr))server_port
server_port は、現在のリクエストを受信したサーバーのポートを読み取ります。
構文 —
server_port()パラメーター — なし。
戻り値 — サーバーポートを返します。データ型:数値。
次の例は、server_port の使用方法を示しています:
s_port = server_port()
say(concat('s_port:', tostring(s_port)))クライアント属性
client_addr と client_port は、現在のリクエストを送信したクライアントのアドレスとポートを読み取ります。
client_addr
client_addr はクライアント IP アドレスを読み取ります。代わりに X-Forwarded-For リクエストヘッダーの最初のアドレスを読み取るには、req_first_x_forwarded を使用します。
構文 —
client_addr()パラメーター — なし。
戻り値 — クライアント IP アドレスを返します。データ型: 文字列。
client_addr注意事項
次の例は、client_addr の使用方法を示しています:
c_addr = client_addr()
say(concat('c_addr:', c_addr))client_port
client_port はクライアントポートを読み取ります。
構文 —
client_port()パラメーター — なし。
戻り値 — クライアントポートを返します。データ型:数値。
次の例は、client_port の使用方法を示しています:
c_port = client_port()
say(concat('c_port:', tostring(c_port)))クライアントの地理的位置情報
client_* 地理的位置情報関数は、現在のリクエストを送信したクライアントの位置情報コードを読み取ります。ご自身で提供した IP アドレスを解決するには、代わりに ip_* 関数を使用します。
これらの関数に適用される精度の制限については、「注意事項」をご参照ください。
client_country
client_country は、クライアント IP アドレスの国またはリージョンコードを読み取ります。
構文 —
client_country()パラメーター — なし。
戻り値 — クライアント IP アドレスの国またはリージョンコードを返します。データ型:文字列。国およびリージョンコードについては、「国コード」をご参照ください。
次の例は、client_country の使用方法を示しています:
c_country = client_country()
if c_country {
say(concat('client_country:', c_country))
}client_region
client_region は、クライアント IP アドレスの行政区画 (省または市) コードを読み取ります。
構文 —
client_region()パラメーター — なし。
戻り値 — クライアント IP アドレスの行政区画 (省または市) コードを返します。データ型:文字列。行政区画コードについては、「行政区画コード」をご参照ください。
次の例は、client_region の使用方法を示しています:
c_region = client_region()
if c_region {
say(concat('client_region:', c_region))
}client_isp
client_isp は、クライアント IP アドレスの ISP コードを読み取ります。
構文 —
client_isp()パラメーター — なし。
戻り値 — クライアント IP アドレスの ISP コードを返します。データ型:文字列。ISP コードについては、「ISP コード」をご参照ください。
次の例は、client_isp の使用方法を示しています:
c_isp = client_isp()
if c_isp {
say(concat('client_isp:', c_isp))
}指定された IP アドレスの地理的位置情報
ip_* 関数は、ipaddr で渡す IP アドレスの位置情報コードを読み取ります。現在のリクエストを送信したクライアントを解決するには、代わりに client_* 地理的位置情報関数を使用します。
これらの関数に適用される精度の制限については、「注意事項」をご参照ください。
ip_region
ip_region は、指定された IP アドレスの行政区画 (省または市) コードを読み取ります。
構文 —
ip_region(ipaddr)パラメーター —
ipaddr:ドット付き 10 進表記の IP アドレス文字列。戻り値 — 指定された IP アドレスの行政区画 (省または市) コードを返します。データ型:文字列。行政区画コードについては、「行政区画コード」をご参照ください。
次の例は、ip_region の使用方法を示しています:
c_region = ip_region('192.168.0.1')
if c_region {
say(concat('ip_region:', c_region))
}ip_isp
ip_isp は、指定された IP アドレスの ISP コードを読み取ります。
構文 —
ip_isp(ipaddr)パラメーター —
ipaddr:ドット付き 10 進表記の IP アドレス文字列。戻り値 — 指定された IP アドレスの ISP コードを返します。データ型:文字列。ISP コードについては、「ISP コード」をご参照ください。
次の例は、ip_isp の使用方法を示しています:
c_isp = ip_isp('192.168.0.1')
if c_isp {
say(concat('ip_isp:', c_isp))
}URI 解析
次の関数は、パス、ファイル名、ファイル拡張子、パスセグメント、URI パラメーター、クエリ文字列など、リクエスト URI の個々の部分を読み取ります。
req_uri
req_uri は、クエリパラメーターを除くリクエスト URI を読み取ります。
構文 —
req_uri([pattern])パラメーター —
pattern:マッチングに使用されるパターン。サポートされているマッチングモードについては、「パターンマッチング」をご参照ください。戻り値
patternなし:リクエスト URI を返します。データ型:文字列。patternあり:マッチングが成功した場合はtrueを返し、失敗した場合はfalseを返します。データ型:ブール値。
次の例は、req_uri の使用方法を示しています:
# req_uri
say(concat('req_uri: ', req_uri()))
if req_uri('/path1/path2') {
say('req_uri: plain match')
}
if req_uri('re:/path[0-9]/path[0-9]') {
say('req_uri: regex match')
}この例では、次の結果が返されます:
Request: /path1/path2?mode=ip
Response:
req_uri: /path1/path2
req_uri: plain match
req_uri: regex matchreq_uri_basename
req_uri_basename は、リクエスト URI 内のファイル名を読み取ります。
構文 —
req_uri_basename([pattern])パラメーター —
pattern:マッチングに使用されるパターン。サポートされているマッチングモードについては、「パターンマッチング」をご参照ください。戻り値
patternなし:リクエスト URI 内のファイル名を返します。データ型:文字列。patternあり:マッチングが成功した場合はtrueを返し、失敗した場合はfalseを返します。データ型:ブール値。
次の例は、リクエスト URI のどの部分がファイル名であるかを示しています:
/document_detail/30360.htmlの場合、ファイル名は30360です。/M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4の場合、ファイル名は2-1_gです。/tarball/foo.tar.bz2の場合、ファイル名はfooです。
次の例は、req_uri_basename の使用方法を示しています:
# req_uri_basename
basename = req_uri_basename()
say(concat('req_uri_basename: ', basename, ' ', len(basename)))
if req_uri_basename('foo') {
say('req_uri_basename: plain match')
}
if req_uri_basename('re:^f.*') {
say('req_uri_basename: regex match')
}この例では、次の結果が返されます:
Request: /path1/path2/foo.tar.bz2
Response:
req_uri_basename: foo 3
req_uri_basename: plain match
req_uri_basename: regex matchreq_uri_ext
req_uri_ext は、リクエスト URI 内のファイル拡張子を読み取ります。
構文 —
req_uri_ext([pattern])パラメーター —
pattern:マッチングに使用されるパターン。サポートされているマッチングモードについては、「パターンマッチング」をご参照ください。戻り値
patternなし:リクエスト URI 内のファイル拡張子を返します。データ型:文字列。patternあり:マッチングが成功した場合はtrueを返し、失敗した場合はfalseを返します。データ型:ブール値。
次の例は、リクエスト URI のどの部分がファイル拡張子であるかを示しています:
/document_detail/30360.htmlの場合、ファイル拡張子は.htmlです。/M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4の場合、ファイル拡張子は.mp4です。/tarball/foo.tar.bz2の場合、ファイル拡張子は.tar.bz2です。
次の例は、req_uri_ext の使用方法を示しています:
# req_uri_ext
ext = req_uri_ext()
say(concat('req_uri_ext: ', ext, ' ', len(ext)))
if req_uri_ext('.tar.bz2') {
say('req_uri_ext: plain match')
}
if req_uri_ext('re:\.tar\.bz[0-2]') {
say('req_uri_ext: regex match')
}この例では、次の結果が返されます:
Request: /path1/path2/foo.tar.bz2
Response:
req_uri_ext: .tar.bz2 8
req_uri_ext: plain match
req_uri_ext: regex matchreq_uri_seg
req_uri_seg は、リクエスト URI をスラッシュ (/) でセグメントに分割します。
セグメントには最大 128 文字を含めることができます。この制限を超えるコンテンツは破棄されます。
構文 —
req_uri_seg([idx])パラメーター —
idx(オプション):開始インデックスを指定します。セグメントインデックスは 1 から始まり、リクエスト URI の先頭から左から右へと増加します。戻り値
idxなし:すべてのセグメントを含むディクショナリを返します。データ型:ディクショナリ。idxあり:指定されたインデックスから始まるセグメント (そのインデックスのセグメントを含む) を含むディクショナリを返します。データ型:ディクショナリ。
返されたディクショナリから指定されたインデックスのセグメントを取得するときは、セグメントが空でないか確認する必要があります。
次の例は、req_uri_seg の使用方法を示しています:
# req_uri_seg
def echo_each(k, v, u) {
say(concat(get(u, 'msg'), ' : segs[', k, ']=', v))
}
# fetch all segments
segs = req_uri_seg()
foreach(segs, echo_each, ['msg'='req_uri_seg()'])
# fetch segments from idx 3
segs = req_uri_seg(3)
if get(segs, 3) {
say(concat('req_uri_seg(3): segs[3]=', get(segs, 3)))
}
if get(segs, 4) {
say(concat('req_uri_seg(3): segs[4]=', get(segs, 4)))
}
if get(segs, 5) {
say(concat('req_uri_seg(3): segs[5]=', get(segs, 5)))
}この例では、次の結果が返されます:
Request: /path1/path2/path3/path4?mode=req2
Response:
req_uri_seg() : segs[1]=path1
req_uri_seg() : segs[2]=path2
req_uri_seg() : segs[3]=path3
req_uri_seg() : segs[4]=path4
req_uri_seg(3): segs[3]=path3
req_uri_seg(3): segs[4]=path4req_uri_arg
req_uri_arg は、指定された URI パラメーターの値を読み取ります。
構文 —
req_uri_arg(name, [pattern])パラメーター
name:パラメーター名。pattern:マッチングに使用されるパターン。サポートされているマッチングモードについては、「パターンマッチング」をご参照ください。
戻り値
patternなし:パラメーターが存在する場合:
nameで指定されたパラメーターの文字列値を返します。データ型:文字列。パラメーターが存在しない場合:
falseを返します。
patternあり:パラメーターが存在する場合:マッチングを実行し、成功した場合は
trueを返し、失敗した場合はfalseを返します。データ型:ブール値。パラメーターが存在しない場合:
falseを返します。
次の例は、req_uri_arg の使用方法を示しています:
# req_uri_arg
uid = req_uri_arg('uid')
if uid {
say(concat('found uid ', uid))
} else {
say('not found uid')
}
uid_chk = req_uri_arg('uid', '058334')
if uid_chk {
say('check uid ok. plain mode')
} else {
say('check uid fail. plain mode')
}
uid_chk = req_uri_arg('uid', 're:[0-9]+')
if uid_chk {
say('check uid ok. regex mode')
} else {
say('check uid fail. regex mode')
}この例では、次の結果が返されます:
Request: /path1/path2/path3/path4?mode=req4&uid
Response:
not found uid
check uid fail. plain mode
check uid fail. regex mode
Request: /path1/path2/path3/path4?mode=req4&uid=
Response:
found uid
check uid fail. plain mode
check uid fail. regex mode
Request: /path1/path2/path3/path4?mode=req4&uid=12345
Response:
found uid 12345
check uid fail. plain mode
check uid ok. regex modereq_uri_query_string
req_uri_query_string は、疑問符 (?) を除くリクエストのクエリパラメーターを読み取ります。
構文 —
req_uri_query_string([pattern])パラメーター —
pattern:マッチングに使用されるパターン。サポートされているマッチングモードについては、「パターンマッチング」をご参照ください。戻り値
patternなし:リクエストのクエリパラメーターを返します。データ型:文字列。patternあり:マッチングが成功した場合はtrueを返し、失敗した場合はfalseを返します。データ型:ブール値。
次の例は、req_uri_query_string の使用方法を示しています:
# req_uri_query_string
say(concat('req_uri_query_string: ', req_uri_query_string()))
if req_uri_query_string('mode=') {
say('check uri query string ok. plain mode')
} else {
say('check uri query string fail. plain mode')
}
if req_uri_query_string('re:mode=[0-9a-z]+') {
say('check uri query string ok. regex mode')
} else {
say('check uri query string fail. regex mode')
}この例では、次の結果が返されます:
Request: /path1/path2/path3/path4?mode=req5&token=34Deasd#243
Response:
req_uri_query_string: mode=req5&token=34Deasd
check uri query string fail. plain mode
check uri query string ok. regex modeリクエスト行とヘッダー
次の関数は、現在のリクエストのリクエスト行の属性、リクエストヘッダーの値、および Cookie の値を読み取ります。
req_scheme
req_scheme はリクエストスキームを読み取ります。
構文 —
req_scheme([pattern])パラメーター —
pattern:マッチングに使用されるパターン。サポートされているマッチングモードについては、「パターンマッチング」をご参照ください。戻り値
patternなし:リクエストスキームを返します。データ型:文字列。patternあり:マッチングが成功した場合はtrueを返し、失敗した場合はfalseを返します。データ型:ブール値。
次の例は、req_scheme の使用方法を示しています:
# req_scheme
say(concat('req_scheme: ', req_scheme()))
if req_scheme('https') {
say('check scheme ok. plain mode')
} else {
say('check scheme fail. plain mode')
}
if req_scheme('re:https?') {
say('check scheme ok. regex mode')
} else {
say('check scheme fail. regex mode')
}この例では、次の結果が返されます:
Request: http://xx..
Response:
req_scheme: http
check scheme fail. plain mode
check scheme ok. regex modereq_method
req_method はリクエストメソッドを読み取ります。
構文 —
req_method([pattern])パラメーター —
pattern:マッチングに使用されるパターン。サポートされているマッチングモードについては、「パターンマッチング」をご参照ください。戻り値
patternなし:リクエストメソッドを返します。データ型:文字列。patternあり:マッチングが成功した場合はtrueを返し、失敗した場合はfalseを返します。データ型:ブール値。
次の例は、req_method の使用方法を示しています:
# req_method
say(concat('req_method: ', req_method()))
if req_method('GET') {
say('check method ok. plain mode')
} else {
say('check method fail. plain mode')
}
if req_method('re:(GET|POST)') {
say('check method ok. regex mode')
} else {
say('check method fail. regex mode')
}この例では、次の結果が返されます:
Request: POST /xxxx/xxx
Response:
req_method: POST
check method fail. plain mode
check method ok. regex modereq_host
req_host は、Host リクエストヘッダーの値を読み取ります。
構文 —
req_host([pattern])パラメーター —
pattern:マッチングに使用されるパターン。サポートされているマッチングモードについては、「パターンマッチング」をご参照ください。戻り値
patternなし:Hostリクエストヘッダーの値を返します。データ型:文字列。patternあり:マッチングが成功した場合はtrueを返し、失敗した場合はfalseを返します。データ型:ブール値。
次の例は、req_host の使用方法を示しています:
# req_host
say(concat('req_host: ', req_host()))
if req_host('image.developer.aliyundoc.com') {
say('check host ok. plain mode')
} else {
say('check host fail. plain mode')
}
if req_host('re:.+\.y\.z\.com') {
say('check host ok. regex mode')
} else {
say('check host fail. regex mode')
}この例では、次の結果が返されます:
Request: Host: image.developer.aliyundoc.com
Response:
req_host: image.developer.aliyundoc.com
check host fail. plain mode
check host ok. regex modereq_user_agent
req_user_agent は、User-Agent リクエストヘッダーの値を読み取ります。
構文 —
req_user_agent([pattern])パラメーター —
pattern:マッチングに使用されるパターン。サポートされているマッチングモードについては、「パターンマッチング」をご参照ください。戻り値
patternなし:User-Agentリクエストヘッダーの値を返します。データ型:文字列。patternあり:マッチングが成功した場合はtrueを返し、失敗した場合はfalseを返します。データ型:ブール値。
次の例は、req_user_agent の使用方法を示しています:
# req_user_agent
say(concat('req_user_agent: ', req_user_agent()))
if req_user_agent('Mozilla') {
say('check user_agent ok. plain mode')
} else {
say('check user_agent fail. plain mode')
}
if req_user_agent('re:^Mozilla') {
say('check user_agent ok. regex mode')
} else {
say('check user_agent fail. regex mode')
}この例では、次の結果が返されます:
Request: User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Response:
req_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
check user_agent fail. plain mode
check user_agent ok. regex modereq_referer
req_referer は、Referer リクエストヘッダーの値を読み取ります。
構文 —
req_referer([pattern])パラメーター —
pattern:マッチングに使用されるパターン。サポートされているマッチングモードについては、「パターンマッチング」をご参照ください。戻り値
patternなし:Refererリクエストヘッダーの値を返します。データ型:文字列。patternあり:マッチングが成功した場合はtrueを返し、失敗した場合はfalseを返します。データ型:ブール値。
次の例は、req_referer の使用方法を示しています:
# req_referer
say(concat('req_referer: ', req_referer()))
if req_referer('https://example.aliyundoc.com/******00003') {
say('check referer ok. plain mode')
} else {
say('check referer fail. plain mode')
}
if req_referer('re:https://foo\.bar\.cn/\*+[0-9]+') {
say('check referer ok. regex mode')
} else {
say('check referer fail. regex mode')
}この例では、次の結果が返されます:
Request: Referer: https://example.aliyundoc.com/******00003
Response:
req_referer: https://example.aliyundoc.com/******00003
check referer ok. plain mode
check referer fail. regex modereq_first_x_forwarded
req_first_x_forwarded は、X-Forwarded-For リクエストヘッダーの最初のアドレスを読み取ります。代わりにクライアント IP アドレスを読み取るには、client_addr を使用します。
構文 —
req_first_x_forwarded([pattern])パラメーター —
pattern:マッチングに使用されるパターン。サポートされているマッチングモードについては、「パターンマッチング」をご参照ください。戻り値
patternなし:X-Forwarded-Forリクエストヘッダーの最初のアドレスを返します。データ型:文字列。patternあり:マッチングが成功した場合はtrueを返し、失敗した場合はfalseを返します。データ型:ブール値。
次の例は、req_first_x_forwarded の使用方法を示しています:
# req_first_x_forwarded
say(concat('req_first_x_forwarded: ', req_first_x_forwarded()))
if req_first_x_forwarded('203.0.113.1') {
say('check first_x_forwarded ok. plain mode')
} else {
say('check first_x_forwarded fail. plain mode')
}
if req_first_x_forwarded('re:203.0.113.[0-9]') {
say('check first_x_forwarded ok. regex mode')
} else {
say('check first_x_forwarded fail. regex mode')
}この例では、次の結果が返されます:
Request: X-Forwarded-For: 203.0.113.1, 10.10.10.10, 172.16.0.1
Response:
req_first_x_forwarded: 203.0.113.1
check first_x_forwarded ok. plain mode
check first_x_forwarded ok. regex modereq_header
req_header は、指定されたリクエストヘッダーの値を読み取ります。
構文 —
req_header(name, [pattern])パラメーター
name:リクエストヘッダー名。リクエストヘッダー名の各ハイフン (-) をアンダースコア (_) に置き換えます。たとえば、X-USER-IDはx_user_idになります。pattern:マッチングに使用されるパターン。サポートされているマッチングモードについては、「パターンマッチング」をご参照ください。
戻り値
patternなし:リクエストヘッダーが存在する場合:
nameで指定されたリクエストヘッダーの文字列値を返します。データ型:文字列。リクエストヘッダーが存在しない場合:
falseを返します。
patternあり:リクエストヘッダーが存在する場合:マッチングを実行し、成功した場合は
trueを返し、失敗した場合はfalseを返します。データ型:ブール値。リクエストヘッダーが存在しない場合:
falseを返します。
次の例は、req_header の使用方法を示しています:
# req_header
uid = req_header('x_uid')
if uid {
say(concat('found header x-uid ', uid))
} else {
say('not found header x-uid')
}
uid_chk = req_header('x_uid', 'es developer')
if uid_chk {
say('check header x-uid ok. plain mode')
} else {
say('check header x-uid fail. plain mode')
}
uid_chk = req_header('x_uid', 're:es [a-z]+')
if uid_chk {
say('check header x-uid ok. regex mode')
} else {
say('check header x-uid fail. regex mode')
}この例では、次の結果が返されます:
Request: X-UID: es developer
Response:
found header x-uid es developer
check header x-uid ok. plain mode
check header x-uid ok. regex modeリクエスト識別子
次の関数は、現在のリクエストのリクエスト ID を読み取ります。
req_id
req_id は、各リクエストの一意の識別子であるリクエスト ID を読み取ります。
構文 —
req_id()パラメーター — なし。
戻り値 — リクエスト ID を返します。データ型:文字列。
次の例は、req_id の使用方法を示しています:
# req_id
say(concat('req_id: ', req_id()))この例では、req_id: 6451c43d15815890089411000e が返されます。