Configure uma política de reescrita para modificar o URI das requisições que chegam à sua função por meio de um nome de domínio personalizado. Este tópico descreve os padrões de reescrita disponíveis e explica como configurar essa política para seu domínio personalizado no console do Function Compute.
Contexto
No Function Compute, a política de reescrita modifica apenas os componentes path e query do URI da requisição. O sistema não oferece suporte à alteração dos componentes scheme, host, port ou fragment.
Padrões de reescrita
O Function Compute oferece reescritas no nível de rota para domínios personalizados com três padrões: reescrita exata, reescrita com curinga e reescrita com expressão regular.
Reescrita exata
Na reescrita exata, se o path da requisição corresponder exatamente à regra de correspondência, o path será substituído pela regra de substituição. Por exemplo, se a regra de correspondência for /old e a regra de substituição for /new, uma requisição para /old será reescrita como /new.
|
Regra de correspondência |
Regra de substituição |
URI original |
URI reescrito |
|
|
|
|
|
|
|
Sem correspondência |
||
|
|
|
|
|
Reescrita com curinga
A reescrita com curinga oferece uma forma simples de corresponder a requisições e atende à maioria dos casos de uso.
Na regra de substituição, referencie a string capturada por cada asterisco conforme sua posição. Por exemplo, se a regra de correspondência for /api/* e a regra de substituição for /$1, uma requisição para /api/getFunctionName será reescrita como /getFunctionName.
Na reescrita com curinga, os caracteres * e ^ possuem significados especiais. Todos os demais caracteres são tratados como strings literais.
*corresponde a qualquer string.^ancora a correspondência ao início da string.
|
Regra de correspondência |
Regra de substituição |
URI original |
URI reescrito |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
Sem correspondência |
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sem correspondência |
Reescrita com expressão regular
Na reescrita com expressão regular, as regras de correspondência e substituição seguem a sintaxe padrão de expressões regulares. Para mais detalhes sobre a sintaxe, consulte sintaxe de expressão regular.
A reescrita com expressão regular é um recurso avançado, com sintaxe complexa e voltado para casos de uso específicos. Na maioria dos cenários, recomendamos o uso da reescrita com curinga.
|
Regra de correspondência |
Regra de substituição |
URI original |
URI reescrito |
|
|
|
|
|
|
|
Sem correspondência |
||
|
|
|
|
|
|
|
|
Ordem de correspondência e prioridade
A prioridade dos três padrões de reescrita, da maior para a menor, é: reescrita exata → reescrita com curinga → reescrita com expressão regular.
É possível configurar várias políticas de reescrita para uma única regra de roteamento. Se uma requisição corresponder a múltiplas políticas do mesmo tipo, o Function Compute aplicará a primeira na ordem especificada e ignorará as demais.
Por exemplo, considere as seguintes políticas de reescrita com curinga:
var rule1 = &WildcardRules{
Match: "/api/v1/*",
Replacement: "/api/v2/$1",
}
var rule2 = &WildcardRules{
Match: "/api/*/*",
Replacement: "/api/v3/$2",
}
Se as políticas estiverem ordenadas como [rule1, rule2], uma requisição para
/api/v1/getFunctionNameserá reescrita como/api/v2/getFunctionName.Caso a ordem seja [rule2, rule1], a mesma requisição para
/api/v1/getFunctionNameresultará em/api/v3/getFunctionName.
Pré-requisitos
Procedimento
Adicione uma política de reescrita a um nome de domínio personalizado novo ou existente.
Novo nome de domínio
Faça login no console do Function Compute. No painel de navegação à esquerda, escolha .
Na barra de navegação superior, selecione uma região. Na página Custom Domains, clique em Add Custom Domain Name.
Na página Add Custom Domain Name, insira o nome de domínio. Na seção Routing Settings, clique em Configure abaixo de Configuration.
-
No painel Configure Rewrite Policy, clique em + Add Rewrite Policy, configure a política e clique em OK.
As políticas de reescrita oferecem três opções de Policy Type: reescrita exata (por exemplo, regra de correspondência
/olde regra de substituição/new), reescrita com curinga (por exemplo, regra de correspondência/api/*e regra de substituição$1) e reescrita com expressão regular (por exemplo, regra de correspondência^/api/.+?/(.*)e regra de substituição/api/v2/$1). Para cada política, defina uma Matching rule e uma Replacement rule.
Nome de domínio existente
Faça login no console do Function Compute. No painel de navegação à esquerda, escolha .
Na barra de navegação superior, selecione uma região. Na lista de domínios, localize o domínio desejado e clique em Modify na coluna Actions.
Na página de modificação do nome de domínio personalizado, vá até a seção Routing Settings e clique em Configure abaixo de Configuration.
No painel Configure Rewrite Policy, clique em + Add Rewrite Policy, configure a política e clique em OK.