Para acessar uma aplicação ou função no Function Compute com um nome de domínio fixo em ambiente de produção, ou para evitar downloads forçados ao acessar um gatilho HTTP, vincule um nome de domínio personalizado à aplicação ou função.
Casos de uso
Mapeie um nome de domínio personalizado para uma função ou aplicação nos seguintes cenários:
Você migrou uma aplicação web para o Function Compute e deseja acessá-la pelo nome de domínio existente.
Você desenvolveu uma aplicação web no console do Function Compute e quer usar caminhos diferentes do mesmo domínio para acionar funções distintas.
Você criou uma aplicação, como a Stable Diffusion, no Serverless Application Center do Function Compute e precisa acessá-la com um nome de domínio estático.
Limitações
Ao vincular um nome de domínio personalizado a uma função, selecione a região da função.
Nomes de domínio personalizados diferenciam maiúsculas de minúsculas. Insira o nome de domínio exatamente conforme especificado no filing ICP correspondente.
O sistema suporta nomes de domínio padrão e curinga, mas não nomes de domínio em chinês.
Como funciona
Pré-requisitos
-
Crie uma função ou uma aplicação. Para mais informações, consulte Criar uma função e Criar uma aplicação.
Vincular um nome de domínio personalizado a uma aplicação também o vincula à função associada. Encontre esse recurso de função criado automaticamente na seção Resource Information da página Environment Details. Clique em no nome da função para ir à página de detalhes dela.
-
Seu nome de domínio personalizado deve ter um filing ICP com a Alibaba Cloud como provedor de serviços.
Siga as instruções de filing ICP do provedor de serviços do seu nome de domínio e da conta proprietária dele.
-
Nomes de domínio registrados na conta atual da Alibaba Cloud
Acesse o sistema de Filing ICP da Alibaba Cloud para concluir o filing ICP do nome de domínio personalizado.
-
Nomes de domínio registrados em outra conta da Alibaba Cloud
Recomendamos usar a conta da Alibaba Cloud que registrou o nome de domínio para concluir o filing ICP. Em seguida, acesse o sistema de Filing ICP da Alibaba Cloud para concluir o filing ICP do nome de domínio personalizado.
-
Nomes de domínio não registrados em uma conta da Alibaba Cloud
Se outro provedor de serviços realizou o filing ICP do seu nome de domínio, atualize o registro para adicionar a Alibaba Cloud como provedora. Acesse o sistema de Filing ICP da Alibaba Cloud para fazer isso.
NotaNomes de domínio personalizados vinculados a funções na região China (Hong Kong) ou em regiões fora da China continental não exigem filing ICP.
Caso não saiba qual é o registrador do seu nome de domínio, faça uma consulta WHOIS.
Para determinar se um nome de domínio está registrado na sua conta atual da Alibaba Cloud, verifique o console do Alibaba Cloud DNS.
-
1. Adicionar um nome de domínio personalizado
-
Acesse o console do Function Compute. No painel de navegação à esquerda, escolha . Selecione uma região e clique em Add Custom Domain Name.
ImportanteAo mapear um nome de domínio personalizado para uma função, ambos devem estar na mesma região.
-
Na página Add Custom Domain Name, insira um nome de domínio personalizado que possua filing ICP com a Alibaba Cloud. O sistema suporta tanto nomes de domínio únicos (por exemplo,
www.aliyun.com) quanto nomes de domínio curinga (por exemplo,*.aliyun.com).Obtenha o Internet CNAME ou o Internal CNAME, que serão usados na próxima etapa para configurar a resolução do nome de domínio. A tabela a seguir descreve os formatos de CNAME.
Tipo de CNAME
Formato
Exemplo
Internet CNAME
<account_id>.<region_id>.fc.aliyuncs.comSe o ID da sua conta Alibaba Cloud for 1413397765**** e sua função ou aplicação estiver na região China (Hangzhou):
O Internet CNAME é
1413397765****.cn-hangzhou.fc.aliyuncs.com.Internal CNAME
<account_id>.<region_id>-internal.fc.aliyuncs.comO Internal CNAME é
1413397765****.cn-hangzhou-internal.fc.aliyuncs.com.
2. Configurar a resolução do nome de domínio
Acesse o console do Alibaba Cloud DNS e mapeie o nome de domínio para o CNAME do Function Compute. Para mais informações, consulte Adicionar um registro DNS.
Ao configurar o registro DNS, defina o Record Value como o CNAME do Function Compute obtido na etapa anterior. Para acessar o nome de domínio pela internet, defina o Record Value como o Internet CNAME do Function Compute.
Durante a configuração do registro DNS, defina o Record Type como CNAME, insira @ no campo Hostname e configure a Resolution Line como Default.
3. Concluir a configuração do domínio
Retorne à página Add Custom Domain Name da Etapa 1. Configure as opções a seguir e clique em Create.
3,1 Configuração de rotas
Se sua aplicação contiver várias funções, mapeie diferentes caminhos de solicitação para acionar funções específicas. Para mais informações, consulte Regras de correspondência de caminho.
Caso precise reescrever o URI de uma solicitação que corresponda a um caminho específico com base em regras, consulte Configurar uma política de reescrita (em preview público).
As configurações de roteamento são gerenciadas em uma tabela. Cada regra inclui os campos Path, Function Name, Version/Alias e Rewrite Policy. Por exemplo, mapeie o caminho /test1 para a função test-renwu e use /* como caminho de fallback mapeado para uma função padrão. Selecione LATEST como versão para todas as regras.
3,2 (Opcional) Configurações de HTTPS
Para ativar o acesso HTTPS ao nome de domínio personalizado, configure os parâmetros a seguir.
|
Parâmetro |
Ações |
|
HTTPS |
Quando ativado, o nome de domínio personalizado oferece suporte a HTTP e HTTPS. Quando desativado, oferece suporte apenas a HTTP. Nota
Também é possível marcar a caixa de seleção Redirects HTTP Requests to HTTPS. Essa opção restringe o acesso exclusivamente a HTTPS, e o Function Compute redireciona todas as solicitações HTTP para HTTPS. |
|
Certificate Type |
Selecione o tipo de certificado a ser enviado. Valores válidos:
Nota
O certificado enviado não pode exceder 20 KB, e a chave do certificado não pode ultrapassar 4 KB. |
|
TLS Version |
Selecione a versão do protocolo Transport Layer Security (TLS) para a função. Nota
Após escolher uma versão TLS, marque a caixa de seleção Enable Support for TLS1.3 para habilitar o TLS 1.3. |
|
Cipher Suite |
Selecione os conjuntos de cifras TLS. Se este parâmetro não for configurado, todos os conjuntos de cifras serão selecionados por padrão. Valores válidos:
Importante
|
3,3 (Opcional) Configurações de autenticação
No Authentication: Não exige autenticação para solicitações HTTP. Oferece suporte a acesso anônimo, permitindo que qualquer pessoa faça solicitações HTTP para invocar sua função.
Signature Authentication: Realiza autenticação por assinatura nas solicitações HTTP. Para mais informações, consulte Configurar autenticação por assinatura para um nome de domínio personalizado.
Basic Authentication: Método de autenticação HTTP padrão. Configure um nome de usuário e senha no console do Function Compute. O cliente deve incluir credenciais válidas no cabeçalho Authorization. O acesso é concedido somente se as informações do usuário na solicitação corresponderem ao nome de usuário e senha configurados. Para mais informações, consulte Configurar autenticação Basic para um nome de domínio personalizado.
JWT Authentication: Executa autenticação JWT nas solicitações HTTP para garantir que apenas clientes com um JWT válido acessem a função. Para mais informações, consulte Configurar autenticação JWT para um nome de domínio personalizado.
Bearer Authentication: Aplica autenticação Bearer nas solicitações HTTP. Configure os tokens permitidos no console do Function Compute. O cliente deve incluir um token válido no cabeçalho Authorization. O acesso ocorre apenas se o token da solicitação corresponder a um token configurado. Para mais informações, consulte Configurar autenticação Bearer para um nome de domínio personalizado.
3,4 (Opcional) Configurações do Web Application Firewall
Quando ativado, o Web Application Firewall (WAF) inspeciona o tráfego destinado à sua função, filtra solicitações maliciosas e encaminha apenas tráfego seguro para o backend. Isso protege sua função contra ataques. Para mais informações, consulte Ativar o Web Application Firewall.
3,5 (Opcional) Configurações de CDN
Após vincular um nome de domínio personalizado a uma aplicação web, utilize-o como domínio de origem, adicione um nome de domínio acelerado e configure um CNAME para ele a fim de habilitar a aceleração via CDN. A aplicação implantada no Function Compute atua como servidor de origem para publicar conteúdo nos nós de borda. Dessa forma, os usuários finais recuperam rapidamente o conteúdo necessário, o que reduz efetivamente a latência de acesso e melhora a qualidade do serviço.
-
Ative a aceleração de CDN, insira um CDN-Accelerated Domain Name personalizado e clique em Create para adicioná-lo.
Para que a aceleração entre em vigor, configure manualmente o registro DNS do domínio acelerado. O serviço Alibaba Cloud CDN gera um valor CNAME para o domínio acelerado. Mapeie esse CNAME para o seu domínio acelerado.
ImportanteO recurso de aceleração de CDN consome tráfego de internet e gera taxas de tráfego. Para mais informações, consulte Visão geral de faturamento.
O nome de domínio personalizado e o domínio acelerado não podem ser iguais. Para conservar recursos de nomes de domínio, configure o domínio acelerado como um subdomínio do seu domínio personalizado. Por exemplo, se o seu domínio personalizado for
example.com, defina o domínio acelerado comofast.example.com.
-
Clique em no nome de domínio personalizado configurado. Na página de detalhes, na seção CDN Acceleration Settings, clique em CDN Settings na coluna Actions. Você será redirecionado para o console do Alibaba Cloud CDN, onde encontrará o CNAME do seu domínio acelerado.
O CNAME segue o formato
Nome do domínio acelerado.w.kunlun**.com, por exemplo,fast.example.com.w.kunlunle.com. -
Acesse o console do Alibaba Cloud DNS, localize seu nome de domínio personalizado e crie um registro DNS que aponte o domínio acelerado para o CNAME atribuído, ativando assim a aceleração. Para mais informações, consulte Adicionar um registro DNS.
Defina o Record Type como CNAME - Map a domain name to another domain name.
Configure o Hostname com a primeira parte do subdomínio (neste exemplo,
fast). Defina o Record Value como o valor CNAME do domínio acelerado obtido na etapa anterior.
3,6 (Opcional) Configuração de CORS
Configure o Cross-Origin Resource Sharing (CORS) para um nome de domínio personalizado chamando a operação da API UpdateCustomDomain. Para mais informações, consulte Lidar com solicitações CORS.
4. Verificar o domínio personalizado
4,1 Verificar o acesso ao domínio personalizado
Método 1: Use o comando
curl URL. Exemplo:curl example.com/login.-
Método 2: Utilize um navegador web.
Insira a URL da solicitação na barra de endereços e pressione Enter para confirmar que a função alvo foi invocada.
4,2 (Opcional) Verificar o domínio acelerado
Em um navegador, use o nome de domínio acelerado configurado na Etapa 3,5 (Opcional) Configurações de CDN para acessar a aplicação. Em seguida, abra as ferramentas de desenvolvedor e verifique o valor do cabeçalho de resposta X-Cache para confirmar que a aceleração CDN está funcionando.
O cabeçalho de resposta X-Cache indica o status do cache. Um valor MISS sinaliza falha no cache no primeiro acesso, significando que a solicitação foi buscada no servidor de origem. Uma solicitação subsequente deve retornar HIT, indicando acerto no cache.
|
Falha no primeiro acesso |
Acerto em acesso subsequente |
|
Nas DevTools do navegador, vá ao painel Network. Selecione a solicitação alvo e visualize a aba Headers. Confirme se o Status Code é |
Nas DevTools do navegador, verifique a aba Headers da segunda solicitação no painel Network. O Status Code é |
Conjuntos de cifras
Conjuntos de cifras fortes e fracos
Versões TLS e conjuntos de cifras
Mapeamento de nomes RFC e OpenSSL
Regras de correspondência
Regras de correspondência de rotas
Ao vincular um nome de domínio personalizado, você mapeia caminhos para funções. Isso permite que solicitações de diferentes caminhos acionem suas respectivas funções. O Function Compute oferece dois tipos de correspondência de caminho: exata e aproximada.
-
Correspondência exata: Uma solicitação aciona uma função apenas quando seu caminho é idêntico ao caminho configurado.
Por exemplo, se você configurar uma rota que mapeia o caminho /a para a função f1, versão 1, somente solicitações para /a acionarão a função. Uma solicitação para /a/ não terá correspondência.
-
Correspondência aproximada: Usa um caractere curinga (*) no final de um caminho para corresponder a qualquer solicitação com um prefixo de caminho compatível.
Por exemplo, se você configurar uma rota com o caminho /login/* direcionada à função f2, versão 1, qualquer solicitação cujo caminho comece com /login/ (como /login/a ou /login/b/c/d) acionará a função.
Se houver várias rotas configuradas para um nome de domínio personalizado, a correspondência exata prevalece sobre a aproximada.
-
Quando múltiplas rotas de correspondência aproximada se aplicam a uma solicitação, aquela com o prefixo correspondente mais longo é utilizada.
Por exemplo, considere um nome de domínio personalizado
example.comcom dois caminhos configurados: /login/a/* e /login/*. Uma solicitação para example.com/login/a/b corresponde a ambos os caminhos. No entanto, com base no princípio de correspondência de prefixo mais longo, a solicitação é roteada para a função associada a /login/a/*, pois é o caminho mais específico.
Exemplo
Suponha que você tenha configurado as cinco regras de roteamento a seguir para o nome de domínio personalizado example.com.
|
Regra de roteamento |
Caminho |
Nome da função |
Versão |
|
Regra de roteamento 1 |
/ |
f1 |
1 |
|
Regra de roteamento 2 |
/* |
f2 |
2 |
|
Regra de roteamento 3 |
/login |
f3 |
3 |
|
Regra de roteamento 4 |
/login/a |
f4 |
4 |
|
Regra de roteamento 5 |
/login/* |
f5 |
5 |
A tabela a seguir mostra os resultados da correspondência.
|
URL da solicitação |
Função |
Versão |
Caminho |
|
example.com |
f1 |
1 |
/ |
|
example.com/user |
f2 |
2 |
/* |
|
example.com/login |
f3 |
3 |
/login |
|
example.com/login/a |
f4 |
4 |
/login/a |
|
example.com/login/a/b |
f5 |
5 |
/login/* |
|
example.com/login/b |
f5 |
5 |
/login/* |
Regras de correspondência de nome de domínio
O Function Compute faz a correspondência do nome de domínio em uma solicitação com um nome de domínio personalizado configurado e, em seguida, encaminha a solicitação para a função correspondente. Há suporte para correspondência exata e aproximada de nomes de domínio.
Correspondência exata: Uma solicitação aciona uma função apenas quando seu nome de domínio é idêntico a um nome de domínio único configurado.
Correspondência aproximada: Uma solicitação pode acionar uma função se seu nome de domínio corresponder a um nome de domínio curinga configurado. Um nome de domínio curinga deve usar um único caractere curinga (*) como seu primeiro rótulo.
Se uma solicitação corresponder tanto a um nome de domínio único quanto a um curinga, o nome de domínio único terá precedência.
Um nome de domínio curinga só pode corresponder a um nome de domínio no mesmo nível. Por exemplo, o domínio curinga
*.aliyun.compode corresponder afc.aliyun.com, mas não acn-hangzhou.fc.aliyun.com. Isso ocorre porque*.aliyun.comefc.aliyun.comsão domínios de terceiro nível, enquantocn-hangzhou.fc.aliyun.comé um domínio de quarto nível.
Exemplo
Suponha que você tenha os seguintes nomes de domínio personalizados: fc.aliyun.com, *.aliyun.com e *.fc.aliyun.com. A tabela a seguir mostra a qual nome de domínio cada solicitação corresponde.
|
Domínio da solicitação |
Domínio correspondente |
|
fc.aliyun.com |
fc.aliyun.com |
|
fnf.aliyun.com |
*.aliyun.com |
|
cn-hangzhou.fc.aliyun.com |
*.fc.aliyun.com |
|
accountID.cn-hangzhou.fc.aliyun.com |
nenhum |
Perguntas frequentes
Endpoint público para uso em produção
Erro 502 no domínio personalizado
Erro com nomes de domínio em chinês
Downloads forçados no navegador
Redirecionamento 301 no domínio acelerado
Seleção de função no roteamento
Função não acionada pelo caminho da rota
Diagnósticos
Se ocorrer um erro ao vincular um nome de domínio personalizado, o servidor retornará uma mensagem de erro. Esta tabela lista códigos de erro comuns para ajudar você a identificar e resolver esses problemas.
|
Código de erro |
Código de status HTTP |
Mensagem de erro |
Causa |
|
InvalidICPLicense |
400 |
domain name '%s' has not got ICP license, or the ICP license does not belong to Aliyun |
O nome de domínio não possui filing ICP ou o filing não lista a Alibaba Cloud como provedora de serviços. |
|
DomainNameNotResolved |
400 |
domain name '%s' has not been resolved to your FC endpoint, the expected endpoint is '%s' |
O registro CNAME do nome de domínio não aponta para o endpoint especificado. Para verificar isso, use o comando dig ou verifique as configurações do seu servidor DNS. |
|
DomainRouteNotFound |
404 |
no route found in domain '%s' for path '%s' |
Nenhuma função está configurada para o caminho especificado. |
|
TriggerNotFound |
404 |
trigger 'http' does not exist in service '%s' and function '%s' |
A função vinculada ao nome de domínio personalizado não possui um gatilho HTTP. |
|
DomainNameNotFound |
404 |
domain name '%s' does not exist |
O nome de domínio solicitado não existe. |
|
DomainNameAlreadyExists |
409 |
domain name '%s' already exists |
O nome de domínio especificado já existe. |
Se o problema persistir, entre no grupo do DingTalk (ID do grupo: 64970014484) para obter ajuda dos engenheiros do Function Compute.