Todos os produtos
Search
Central de documentação

Edge Security Acceleration:Funções de lógica de requisição

Última atualização: Jun 29, 2026

Estas funções inspecionam propriedades da requisição atual, como endereço do servidor, identidade do cliente, componentes da URI, cabeçalhos, cookies e dados geográficos. Use-as no EdgeScript para criar lógicas condicionais de roteamento, controle de acesso e personalização de conteúdo.

Funções que retornam dados geográficos do cliente ( client_addr , client_country , client_region , client_isp ) podem apresentar valores imprecisos. Endereços de clientes podem ser reescritos por regras NAT de provedores de serviços de Internet (ISP) ou o endereço IP pode estar fora do pool de endereços do Alibaba Cloud CDN.

server_addr

Retorna o endereço IP do nó CDN que recebeu a requisição atual.

Sintaxe

server_addr()

Parâmetros

Nenhum.

Valor de retorno

Endereço IP do servidor. Tipo de dado: string.

Exemplo

s_addr = server_addr()
say(concat('s_addr:', s_addr))

server_port

Retorna a porta do nó CDN que recebeu a requisição atual.

Sintaxe

server_port()

Parâmetros

Nenhum.

Valor de retorno

Porta do servidor. Tipo de dado: numérico.

Exemplo

s_port = server_port()
say(concat('s_port:', tostring(s_port)))

client_addr

Retorna o endereço IP do cliente que enviou a requisição.

Os valores retornados podem não ser precisos. Consulte a nota sobre precisão no início desta página.

Sintaxe

client_addr()

Parâmetros

Nenhum.

Valor de retorno

Endereço IP do cliente. Tipo de dado: string.

Exemplo

c_addr = client_addr()
c_port = client_port()
say(concat('c_addr:', c_addr))
say(concat('c_port:', tostring(c_port)))

client_port

Retorna a porta do cliente que enviou a requisição.

Sintaxe

client_port()

Parâmetros

Nenhum.

Valor de retorno

Porta do cliente. Tipo de dado: numérico.

Exemplo

c_addr = client_addr()
c_port = client_port()
say(concat('c_addr:', c_addr))
say(concat('c_port:', tostring(c_port)))

client_country

Retorna o código do país do cliente. Combine com client_region() e client_isp() para construir lógicas baseadas em geolocalização.

Os valores retornados podem não ser precisos. Consulte a nota sobre precisão no início desta página.

Sintaxe

client_country()

Parâmetros

Nenhum.

Valor de retorno

Código do país do cliente. Tipo de dado: string. Para valores de códigos de país, consulte Códigos de país.

Exemplo

O exemplo abaixo obtém o país, a divisão administrativa e o ISP do cliente e imprime cada valor caso esteja definido.

c_country = client_country()
c_region = client_region()
c_isp = client_isp()
if c_country {
    say(concat('client_country:', c_country))
}
if c_region {
    say(concat('client_region:', c_region))
}
if c_isp {
    say(concat('client_isp:', c_isp))
}

client_region

Retorna o código da divisão administrativa da localização do cliente.

Os valores retornados podem não ser precisos. Consulte a nota sobre precisão no início desta página.

Sintaxe

client_region()

Parâmetros

Nenhum.

Valor de retorno

Código da divisão administrativa do cliente. Tipo de dado: string. Para valores de códigos, consulte Códigos de divisão administrativa.

Exemplo

Consulte o exemplo em client_country.

client_city

Importante

Use client_city para retornar o código da cidade do cliente. A tabela abaixo detalha a função.

Item

Descrição

Sintaxe

client_city()

Parâmetros

Nenhum

Exemplo

c_country = client_country()
c_region = client_region()
c_isp = client_isp()
if c_country {
    say(concat('client_country:', c_country))
}
if c_region {
    say(concat('client_region:', c_region))
}
if c_isp {
    say(concat('client_isp:', c_isp))
}

Valor de retorno

Retorna o código da cidade do cliente. O valor retornado é do tipo string.Para informações sobre códigos de cidade, consulte a Tabela de códigos de cidade.

client_isp

Retorna o código do ISP da rede do cliente.

Os valores retornados podem não ser precisos. Consulte a nota sobre precisão no início desta página.

Sintaxe

client_isp()

Parâmetros

Nenhum.

Valor de retorno

Código do ISP do cliente. Tipo de dado: string. Para valores de códigos, consulte Códigos de ISP.

Exemplo

Consulte o exemplo em client_country.

ip_country

Importante

Use ip_country para retornar os códigos de país e região de um IP especificado. A tabela abaixo detalha a função.

Item

Descrição

Sintaxe

ip_country(ipaddr)

Parâmetros

ipaddr: string IP em notação decimal pontuada.

Exemplo

c_country = ip_country('192.168.0.1')
c_region = ip_region('192.168.0.1')
c_city = ip_city('192.168.0.1')
c_isp = ip_isp('192.168.0.1')
if c_country {
    say(concat('ip_country:', c_country))
}
if c_region {
    say(concat('ip_region:', c_region))
}
if c_city {
    say(concat('ip_city:', c_city))
}
if c_isp {
    say(concat('ip_isp:', c_isp))
}

Valor de retorno

Retorna os códigos de país e região do IP especificado. O valor retornado é do tipo string.Para informações sobre códigos de país e região, consulte a Tabela de códigos de país.

ip_region

Retorna o código da divisão administrativa da cidade ou província à qual um determinado endereço IP pertence.

Sintaxe

ip_region(ipaddr)

Parâmetros

Parâmetro

Descrição

ipaddr

Um endereço IP em notação decimal pontuada, por exemplo, 192.168.0.1.

Valor de retorno

Código da divisão administrativa da cidade ou província. Tipo de dado: string. Para valores de códigos, consulte Códigos de divisão administrativa.

Exemplo

Consulte o exemplo em ip_country.

ip_city

Importante

Use ip_city para retornar o código da cidade de um IP especificado. A tabela abaixo detalha a função.

Item

Descrição

Sintaxe

ip_city(ipaddr)

Parâmetros

ipaddr: string IP em notação decimal pontuada.

Exemplo

c_country = ip_country('192.168.0.1')
c_region = ip_region('192.168.0.1')
c_city = ip_city('192.168.0.1')
c_isp = ip_isp('192.168.0.1')
if c_country {
    say(concat('ip_country:', c_country))
}
if c_region {
    say(concat('ip_region:', c_region))
}
if c_city {
    say(concat('ip_city:', c_city))
}
if c_isp {
    say(concat('ip_isp:', c_isp))
}

Valor de retorno

Retorna o código da cidade do cliente. O valor retornado é do tipo string.Para informações sobre códigos de cidade, consulte a Tabela de códigos de cidade.

ip_isp

Retorna o código do ISP para um determinado endereço IP.

Sintaxe

ip_isp(ipaddr)

Parâmetros

Parâmetro

Descrição

ipaddr

Um endereço IP em notação decimal pontuada, por exemplo, 192.168.0.1.

Valor de retorno

Código do ISP do endereço IP. Tipo de dado: string. Para valores de códigos, consulte Códigos de ISP.

Exemplo

Consulte o exemplo em ip_country.

req_uri

Retorna a URI da requisição, excluindo parâmetros de consulta. Quando chamada com um argumento pattern, compara a URI com o padrão fornecido.

Sintaxe

req_uri([pattern])

Parâmetros

Parâmetro

Obrigatório

Descrição

pattern

Não

Padrão de correspondência. Dois tipos são suportados: correspondência exata (padrão) e expressão regular (adicione o prefixo re: ao padrão).

Valor de retorno

  • Sem pattern: a URI da requisição. Tipo de dado: string.

  • Com pattern: true se a URI corresponder; caso contrário, false.

Exemplo

# 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')
}

Para a requisição GET /path1/path2?mode=ip, a saída é:

req_uri: /path1/path2
req_uri: plain match
req_uri: regex match

req_uri_basename

Retorna o nome do arquivo na URI da requisição, sem a extensão. Quando chamada com um argumento pattern, compara o nome do arquivo com o padrão fornecido.

O nome do arquivo corresponde ao último componente do caminho, removendo-se sua extensão. Por exemplo:

  • /document_detail/30360.html30360

  • /M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp42-1_g

  • /tarball/foo.tar.bz2foo

Sintaxe

req_uri_basename([pattern])

Parâmetros

Parâmetro

Obrigatório

Descrição

pattern

Não

Padrão de correspondência. Dois tipos são suportados: correspondência exata (padrão) e expressão regular (adicione o prefixo re: ao padrão).

Valor de retorno

  • Sem pattern: o nome do arquivo. Tipo de dado: string.

  • Com pattern: true se o nome do arquivo corresponder; caso contrário, false.

Exemplo

# 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')
}

Para a requisição GET /path1/path2/foo.tar.bz2, a saída é:

req_uri_basename: foo 3
req_uri_basename: plain match
req_uri_basename: regex match

req_uri_ext

Retorna a extensão do arquivo na URI da requisição. Quando chamada com um argumento pattern, compara a extensão com o padrão fornecido.

A extensão inclui o ponto inicial. Para extensões compostas, o sufixo completo é retornado. Por exemplo:

  • /document_detail/30360.html.html

  • /M604/guopei_mp4/ZYJY2017BJGL0101/2-1_g.mp4.mp4

  • /tarball/foo.tar.bz2.tar.bz2

Sintaxe

req_uri_ext([pattern])

Parâmetros

Parâmetro

Obrigatório

Descrição

pattern

Não

Padrão de correspondência. Dois tipos são suportados: correspondência exata (padrão) e expressão regular (adicione o prefixo re: ao padrão).

Valor de retorno

  • Sem pattern: a extensão do arquivo. Tipo de dado: string.

  • Com pattern: true se a extensão corresponder; caso contrário, false.

Exemplo

# 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')
}

Para a requisição GET /path1/path2/foo.tar.bz2, a saída é:

req_uri_ext: .tar.bz2 8
req_uri_ext: plain match
req_uri_ext: regex match

req_uri_seg

Retorna os segmentos de caminho da URI como um dicionário, indexado de 1 em diante, da esquerda para a direita.

  • Sem idx: retorna todos os segmentos.

  • Com idx: retorna os segmentos a partir desse índice (inclusive).

Cada segmento pode conter até 128 caracteres. Caracteres além desse limite são descartados.

Sintaxe

req_uri_seg([idx])

Parâmetros

Parâmetro

Obrigatório

Descrição

idx

Não

Índice inicial. Os índices começam em 1.

Valor de retorno

Um dicionário de segmentos de caminho indexado por posição. Verifique cada chave antes de acessá-la, pois chaves ausentes retornam vazio.

Exemplo

# 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)))
}

Para a requisição GET /path1/path2/path3/path4?mode=req2, a saída é:

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]=path4

req_uri_arg

Retorna o valor de um parâmetro de consulta nomeado. Quando chamada com um argumento pattern, compara o valor do parâmetro com o padrão fornecido.

Sintaxe

req_uri_arg(name, [pattern])

Parâmetros

Parâmetro

Obrigatório

Descrição

name

Sim

Nome do parâmetro de consulta.

pattern

Não

Padrão de correspondência. Dois tipos são suportados: correspondência exata (padrão) e expressão regular (adicione o prefixo re: ao padrão).

Valor de retorno

  • Sem pattern:

    • Parâmetro existe: o valor do parâmetro. Tipo de dado: string.

    • Parâmetro não encontrado: false.

  • Com pattern:

    • Parâmetro existe e valor corresponde: true.

    • Parâmetro existe, mas valor não corresponde: false.

    • Parâmetro não encontrado: false.

Exemplo

# 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')
}

A saída varia conforme a requisição:

Requisição

Saída

/path1/path2/path3/path4?mode=req4&uid

not found uid / check uid fail. plain mode / check uid fail. regex mode

/path1/path2/path3/path4?mode=req4&uid=

found uid / check uid fail. plain mode / check uid fail. regex mode

/path1/path2/path3/path4?mode=req4&uid=12345

found uid 12345 / check uid fail. plain mode / check uid ok. regex mode

req_uri_query_string

Retorna a string de consulta completa da requisição, excluindo o caractere inicial ?. Quando chamada com um argumento pattern, compara a string de consulta com o padrão fornecido.

Sintaxe

req_uri_query_string([pattern])

Parâmetros

Parâmetro

Obrigatório

Descrição

pattern

Não

Padrão de correspondência. Dois tipos são suportados: correspondência exata (padrão) e expressão regular (adicione o prefixo re: ao padrão).

Valor de retorno

  • Sem pattern: a string de consulta. Tipo de dado: string.

  • Com pattern: true se a string de consulta corresponder; caso contrário, false.

Exemplo

# 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')
}

Para a requisição GET /path1/path2/path3/path4?mode=req5&token=34Deasd#243, a saída é:

req_uri_query_string: mode=req5&token=34Deasd
check uri query string fail. plain mode
check uri query string ok. regex mode

req_scheme

Retorna o esquema da requisição (http ou https). Quando chamada com um argumento pattern, compara o esquema com o padrão fornecido.

Sintaxe

req_scheme([pattern])

Parâmetros

Parâmetro

Obrigatório

Descrição

pattern

Não

Padrão de correspondência. Dois tipos são suportados: correspondência exata (padrão) e expressão regular (adicione o prefixo re: ao padrão).

Valor de retorno

  • Sem pattern: o esquema da requisição. Tipo de dado: string.

  • Com pattern: true se o esquema corresponder; caso contrário, false.

Exemplo

# 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')
}

Para uma requisição HTTP, a saída é:

req_scheme: http
check scheme fail. plain mode
check scheme ok. regex mode

req_method

Retorna o método HTTP da requisição. Quando chamada com um argumento pattern, compara o método com o padrão fornecido.

Sintaxe

req_method([pattern])

Parâmetros

Parâmetro

Obrigatório

Descrição

pattern

Não

Padrão de correspondência. Dois tipos são suportados: correspondência exata (padrão) e expressão regular (adicione o prefixo re: ao padrão).

Valor de retorno

  • Sem pattern: o método HTTP. Tipo de dado: string.

  • Com pattern: true se o método corresponder; caso contrário, false.

Exemplo

# 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')
}

Para uma requisição POST, a saída é:

req_method: POST
check method fail. plain mode
check method ok. regex mode

req_host

Retorna o valor do cabeçalho de requisição Host. Quando chamada com um argumento pattern, compara o host com o padrão fornecido.

Sintaxe

req_host([pattern])

Parâmetros

Parâmetro

Obrigatório

Descrição

pattern

Não

Padrão de correspondência. Dois tipos são suportados: correspondência exata (padrão) e expressão regular (adicione o prefixo re: ao padrão).

Valor de retorno

  • Sem pattern: o valor do cabeçalho Host. Tipo de dado: string.

  • Com pattern: true se o host corresponder; caso contrário, false.

Exemplo

# 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')
}

Para a requisição Host: image.developer.aliyundoc.com, a saída é:

req_host: image.developer.aliyundoc.com
check host fail. plain mode
check host ok. regex mode

req_user_agent

Retorna o valor do cabeçalho de requisição User-Agent. Quando chamada com um argumento pattern, compara o valor com o padrão fornecido.

Sintaxe

req_user_agent([pattern])

Parâmetros

Parâmetro

Obrigatório

Descrição

pattern

Não

Padrão de correspondência. Dois tipos são suportados: correspondência exata (padrão) e expressão regular (adicione o prefixo re: ao padrão).

Valor de retorno

  • Sem pattern: o valor do cabeçalho User-Agent. Tipo de dado: string.

  • Com pattern: true se o valor corresponder; caso contrário, false.

Exemplo

# 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')
}

Para a requisição User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64), a saída é:

req_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
check user_agent fail. plain mode
check user_agent ok. regex mode

req_referer

Retorna o valor do cabeçalho de requisição Referer. Quando chamada com um argumento pattern, compara o valor com o padrão fornecido.

Sintaxe

req_referer([pattern])

Parâmetros

Parâmetro

Obrigatório

Descrição

pattern

Não

Padrão de correspondência. Dois tipos são suportados: correspondência exata (padrão) e expressão regular (adicione o prefixo re: ao padrão).

Valor de retorno

  • Sem pattern: o valor do cabeçalho Referer. Tipo de dado: string.

  • Com pattern: true se o valor corresponder; caso contrário, false.

Exemplo

# 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')
}

Para a requisição Referer: https://example.aliyundoc.com/******00003, a saída é:

req_referer: https://example.aliyundoc.com/******00003
check referer ok. plain mode
check referer fail. regex mode

req_cookie

Retorna o valor de um cookie nomeado. Quando chamada com um argumento pattern, compara o valor do cookie com o padrão fornecido.

Sintaxe

req_cookie(name, [pattern])

Parâmetros

Parâmetro

Obrigatório

Descrição

name

Sim

Nome do cookie.

pattern

Não

Padrão de correspondência. Dois tipos são suportados: correspondência exata (padrão) e expressão regular (adicione o prefixo re: ao padrão).

Valor de retorno

  • Sem pattern:

    • Cookie existe: o valor do cookie. Tipo de dado: string.

    • Cookie não encontrado: false.

  • Com pattern:

    • Cookie existe e valor corresponde: true.

    • Cookie existe, mas valor não corresponde: false.

    • Cookie não encontrado: false.

Exemplo

# req_cookie
uid = req_cookie('uid')
if uid {
    say(concat('found cookie uid ', uid))
} else {
    say('not found cookie uid')
}
uid_chk = req_cookie('uid', '058334')
if uid_chk {
    say('check cookie uid ok. plain mode')
} else {
    say('check cookie uid fail. plain mode')
}
uid_chk = req_cookie('uid', 're:^[0-9]+')
if uid_chk {
    say('check cookie uid ok. regex mode')
} else {
    say('check cookie uid fail. regex mode')
}

Para a requisição Cookie: uid=123456; token=value2, a saída é:

found cookie uid 123456
check cookie uid fail. plain mode
check cookie uid ok. regex mode

req_first_x_forwarded_addr

Retorna o primeiro endereço IP no cabeçalho de requisição X-Forwarded-For. Quando chamada com um argumento pattern, compara o endereço com o padrão fornecido.

Sintaxe

req_first_x_forwarded_addr([pattern])

Parâmetros

Parâmetro

Obrigatório

Descrição

pattern

Não

Padrão de correspondência. Dois tipos são suportados: correspondência exata (padrão) e expressão regular (adicione o prefixo re: ao padrão).

Valor de retorno

  • Sem pattern: o primeiro endereço IP no cabeçalho X-Forwarded-For. Tipo de dado: string.

  • Com pattern: true se o endereço corresponder; caso contrário, false.

Exemplo

# req_first_x_forwarded
say(concat('req_first_x_forwarded: ', req_first_x_forwarded()))
if req_first_x_forwarded('1.1.1.1') {
    say('check first_x_forwarded ok. plain mode')
} else {
    say('check first_x_forwarded fail. plain mode')
}
if req_first_x_forwarded('re:1.1.1.[0-9]') {
    say('check first_x_forwarded ok. regex mode')
} else {
    say('check first_x_forwarded fail. regex mode')
}

Para a requisição X-Forwarded-For: 1.1.X.X, 10.10.10.10, 172.16.0.1, a saída é:

req_first_x_forwarded: 1.1.X.X
check first_x_forwarded ok. plain mode
check first_x_forwarded ok. regex mode

req_header

Retorna o valor de um cabeçalho de requisição nomeado. Quando chamada com um argumento pattern, compara o valor do cabeçalho com o padrão fornecido.

Sintaxe

req_header(name, [pattern])

Parâmetros

Parâmetro

Obrigatório

Descrição

name

Sim

Nome do cabeçalho com hífens substituídos por underscores, em letras minúsculas. Por exemplo, X-USER-ID torna-se x_user_id.

pattern

Não

Padrão de correspondência. Dois tipos são suportados: correspondência exata (padrão) e expressão regular (adicione o prefixo re: ao padrão).

Valor de retorno

  • Sem pattern:

    • Cabeçalho existe: o valor do cabeçalho. Tipo de dado: string.

    • Cabeçalho não encontrado: false.

  • Com pattern:

    • Cabeçalho existe e valor corresponde: true.

    • Cabeçalho existe, mas valor não corresponde: false.

    • Cabeçalho não encontrado: false.

Exemplo

# 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')
}

Para a requisição X-UID: es developer, a saída é:

found header x-uid es developer
check header x-uid ok. plain mode
check header x-uid ok. regex mode

req_id

Retorna o ID Eagle Eye da requisição. Cada ID Eagle Eye identifica exclusivamente uma única requisição.

Sintaxe

req_id()

Parâmetros

Nenhum.

Valor de retorno

ID da requisição. Tipo de dado: string.

Exemplo

# req_id
say(concat('req_id: ', req_id()))

Exemplo de saída: req_id: 6451c43d15815890089411000e