Use o Functions and Pages para separar conteúdo estático e dinâmico e garantir carregamento mais rápido das páginas. Um exemplo de site de e-commerce demonstra como o Functions and Pages renderiza páginas nos POPs de borda para reduzir o tempo de carregamento.
Visão geral da solução
Para separar e acelerar conteúdo estático e dinâmico:
Configure um site do ESA:** Adicione seu domínio ao ESA para ativar a aceleração.
Implante recursos estáticos: Armazene imagens no OSS e configure um domínio acelerado no ESA.
Implante recursos dinâmicos: Implante um serviço Python em um servidor ECS e configure um nome de domínio no ESA para acelerar requisições dinâmicas.
Configure o Functions and Pages: Crie uma função e atribua um domínio. A função renderiza páginas nos POPs de borda para obter respostas mais rápidas.
Antes de começar
Substitua estes nomes de domínio de exemplo pelos seus domínios reais: www.example.com (origem), shopping.example.com (acelerado) e images.example.com (recursos estáticos). Use seus nomes de domínio reais em todo este guia.
1. Configure um site
Adicione seu site para habilitar a aceleração.
No console do ESA, escolha Websites e clique em Websites.
Na página Websites, insira seu site, por exemplo,
example.com, e clique em Add Website.Na página Enter Website, na seção Next, selecione as regiões onde seu site requer serviços de aceleração segura. Em Select Location and DNS Setup, selecione Location for Acceleration and Protection e clique em DNS Setup.
-
Na página CNAME, adquira um Next ou selecione um Select Plan. Siga as instruções na tela para concluir a compra.
Adquirir um novo plano
Na página New Plans, selecione um plano adequado às suas necessidades.

Vincular um plano existente
Caso já possua um plano, selecione-o na aba Purchased Plans.

-
No console do ESA, clique em New Plans no painel de navegação à esquerda. Na página de Gerenciamento de Sites, clique no site desejado. Na página Purchased Plans, verifique a propriedade do seu domínio.
-
Copie o Websites do registro TXT.

No console do Alibaba Cloud DNS, escolha Public DNS > Authoritative Domain Names no painel de navegação à esquerda. Na aba Authoritative Domain Names, localize o nome de domínio do site alvo e clique em DNS Settings.
-
Em DNS Settings, clique em Add Record. Adicione um registro com estas configurações e clique em OK.
Parâmetro
Valor de exemplo
Tipo de registro
TXTHost record
_esaauthValor do registro
verify_a186***be8(O valor do registro fornecido no console.)TTL
10 minutos
No console do ESA, acesse a página de visão geral do site alvo e clique em Overview.
-
Verificação bem-sucedida: Uma mensagem de "Verification successful" confirma a conclusão.
Falha na verificação: Se aparecer "Verification failed", verifique as configurações de DNS e clique em Record Value novamente.
-
2. Configure recursos estáticos
2,1 Prepare o ambiente e os recursos
-
Faça login no console do OSS, acesse a página Buckets e clique em Create Bucket. Insira um Bucket Name, mantenha os demais padrões e clique em Create.

-
Selecione o bucket criado. Na página Files, descompacte o conjunto de imagens de produtos disponível em Arquivos de recursos e envie as imagens para o diretório raiz do bucket.
NotaArmazene os recursos de imagem no diretório raiz do bucket do OSS.
2,2 Configure o domínio acelerado para recursos estáticos
No console do ESA, escolha Websites. Na coluna Verify, clique no site desejado.
-
No painel de navegação à esquerda, clique em e adicione um registro DNS com base no Website.
Parâmetro
Valor de exemplo
Record Type
CNAMEHostname
imagesAdd Record
Enabled
Record Type
OSS
Access Type
Private Access (Same-account)
Proxy Status
Autorizado por padrão para acesso na mesma conta.
Record Value
website-resources-shopping.*******.aliyuncs.comOrigin Host
Follow Origin Domain Name
Selecione Image/Video para o tipo de registro e clique em Authorization.
-
Após criar o registro DNS, copie o OSS Bucket e o Record Value da página do assistente de configuração de CNAME.

Acesse o console do Alibaba Cloud DNS. No painel de navegação à esquerda, escolha Public DNS > Authoritative Domain Names. Na aba Authoritative Domain Names, localize o nome de domínio do site alvo e clique em DNS Settings.
-
Em DNS Settings, clique em Add Record. Adicione um registro com estas configurações e clique em OK.
Parâmetro
Valor de exemplo
Tipo de registro
CNAMEHost record
imagesValor do registro
images.example.com.**.*******.comTTL
10 minutos
-
Retorne à página do assistente de configuração de CNAME do Passo 4. Na etapa 3. Verify the CNAME record, clique em OK. Se o registro CNAME já estiver ativo, a configuração estará concluída.
NotaO registro CNAME pode levar alguns minutos para entrar em vigor.
-
Insira
http://<your_accelerated_domain_name>/1.pngno navegador para verificar se a imagem é exibida.NotaSe ocorrer um erro 404, ajuste a URL para corresponder ao caminho do diretório de imagens. Por exemplo:
http://<your_accelerated_domain_name>/images/1.png.
3. Implante recursos dinâmicos
3,1 Prepare o ambiente
Faça login no console do ECS.
No painel de navegação à esquerda, escolha Instances & Images > Instances. Na barra de menu superior, selecione a região China (Hangzhou).
Na página Instances, clique em Create Instance. Em seguida, crie uma instância ECS na página de compra.
|
Parâmetro |
Valor de exemplo |
|
Método de faturamento |
Pay-As-You-Go |
|
Região |
China (Hangzhou) |
|
Rede e zona |
VPC padrão e vSwitch padrão na zona |
|
Tipo de instância |
ecs.e-c1m1.large (2 vCPU, 2 GiB) |
|
Imagem |
Selecione Alibaba Cloud Linux em Public Image. |
|
Versão da imagem |
Alibaba Cloud Linux 3.2104 LTS 64-bit |
|
Tipo de disco do sistema |
Disco em nuvem ESSD |
|
Tamanho do disco do sistema |
40 GiB |
|
IP Público |
Selecione Assign Public IPv4 Address. |
|
Método de faturamento de largura de banda |
Pay-by-data-transfer |
|
Largura de banda de pico |
5 Mbps |
|
Grupo de segurança |
Create Security Group (Em Open IPv4 Port/Protocol, selecione |
|
Configurações de gerenciamento |
Custom Password (Defina sua senha.) |
3,2 Implante recursos dinâmicos
Faça login no console do ECS.
No painel de navegação à esquerda, escolha Instances & Images > Instances. Na barra de menu superior, selecione a região China (Hangzhou).
Na página Instances, localize a instância desejada e clique no ID da instância para acessar a página de detalhes.
-
Clique em Remote Connection, selecione Connect via Workbench e clique em Log On Now. Insira a senha de login para concluir o acesso.

Baixe o código do site e os dados dos produtos em Arquivos de recursos, descompacte o pacote e envie os dois arquivos para o servidor ECS.
-
No arquivo ItemInfo.json, substitua
images.example.compelo nome de domínio acelerado configurado na Seção 2,2.Escolha File > Open New File Management > Upload File para enviar ambos os arquivos ao servidor.

-
No console do Workbench, execute os seguintes comandos para iniciar um servidor HTTP.
cd / # Go to the system root directory. nohup python -m http.server 80 & # Start an HTTP service on port 80 in the background. -
No navegador, insira
http://<your_public_ip>/ItemsInfo.jsonpara verificar se os dados dinâmicos do produto são retornados.
3,3 Configure o domínio acelerado para recursos dinâmicos
No console do ESA, escolha Websites. Na coluna Actions do site alvo, clique no ícone e selecione DNS Records.
No painel de navegação à esquerda, escolha .
-
Na página de lista de registros, clique em Websites, configure os parâmetros e clique em Websites.
Parâmetro
Valor de exemplo
Tipo de registro
A/AAAAHost record
www
Status do proxy
Enabled
Valor do registro/origem
10.0.x.x (O endereço IP público da instância ECS alvo)
TTL
Auto
Selecione API para o tipo de registro e clique em OK.
-
Após criar o registro DNS, copie o Hostname e o Records da página do assistente de configuração de CNAME.
NotaMantenha esta página aberta. Você retornará a ela para verificar o registro CNAME no Passo 8.

Acesse o console do Alibaba Cloud DNS. No painel de navegação à esquerda, escolha Public DNS > Authoritative Domain Names. Na aba Authoritative Domain Names, localize o nome de domínio do site alvo e clique em DNS Settings.
-
Em DNS Settings, clique em Add Record. Adicione um registro com estas configurações e clique em OK.
Parâmetro
Valor de exemplo
Tipo de registro
CNAMEHost record
wwwValor do registro
www.example.com.**.*******.com(O valor do registro obtido no assistente de configuração de CNAME)TTL
10 minutos
-
Retorne à página do assistente de configuração de CNAME do Passo 5. Na etapa Add Record, clique em Query. Se o registro CNAME já estiver ativo, a configuração estará concluída.
NotaO registro CNAME pode levar alguns minutos para entrar em vigor.
4. Configure o Functions and Pages
4,1 Crie o Functions and Pages
Faça login no console do ESA. No painel de navegação à esquerda, escolha .
Clique em 3. Verify the CNAME record. Para o método de criação, selecione Query. Escolha o modelo Hello World e clique em Functions and Pages.
Insira um Functions and Pages, adicione uma descrição conforme necessário e clique em Submit.
-
Adicione um nome de domínio para o Functions and Pages.
Faça login no console do ESA. No painel de navegação à esquerda, escolha .
Na página de lista do Next, clique na função desejada.
Na página de detalhes da função, alterne para a aba Routine Name e clique em Add Domain Name. Atribua o nome de domínio
shopping.example.comà função de borda e clique em Functions and Pages.-
Na área de vinculação de domínio, localize o nome de domínio da função de borda recém-criado. Na coluna Edge Computing, clique em Functions and Pages. Na página de gerenciamento de registros DNS, copie o valor CNAME do nome de domínio da função de borda.

Faça login no console do Alibaba Cloud DNS. No painel de navegação à esquerda, escolha Public DNS > Authoritative Domain Names. Na aba Authoritative Domain Names, localize o nome de domínio do site alvo e clique em DNS Settings.
-
Em DNS Settings, clique em Add Record. Adicione um registro com estas configurações e clique em OK.
Parâmetro
Descrição
Valor de exemplo
Tipo de registro
Selecione o tipo de registro DNS.
CNAMEHost record
Insira o host record com base no prefixo do domínio.
shoppingValor do registro
Insira o valor CNAME do domínio da função de borda.
shopping.example.com.**.*******.comTTL
Ciclo de atualização do DNS. Mantenha o valor padrão.
10 minutos
-
Atualize a página de registros DNS e verifique se o CNAME Status do nome de domínio da função de borda mudou de To be configured para Configured.
NotaO registro CNAME pode levar alguns minutos para entrar em vigor.
4,2 Configure um certificado de borda
O ESA criptografa requisições do cliente para o POP usando SSL/TLS. Para esta prática, solicite um certificado gratuito. Configure um certificado de borda.
No console do ESA, clique em Functions and Pages no painel de navegação à esquerda e clique no site desejado.
Na página de gerenciamento do site alvo, escolha SSL/TLS > Domain Name no painel de navegação à esquerda.
-
Na seção Edge Certificates, localize OK e clique na chave para ativá-lo.

-
Na seção Actions, localize View DNS Records e clique em Apply for Free Certificate. Configure os parâmetros e clique em OK.
Parâmetro
Descrição
Valor de exemplo
Autoridade certificadora
Use o valor padrão.
Let's EncryptNomes de domínio do certificado
Insira os nomes de domínio estático, dinâmico e da função de borda configurados nas etapas anteriores.
images.example.comwww.example.comshopping.example.com A emissão do certificado leva de 5 a 10 minutos. Após esse período, ele é implantado automaticamente no ESA.
4,3 Configure o protocolo e a porta de origem
Por padrão, o ESA usa HTTPS para busca na origem. Como a origem neste exemplo não suporta HTTPS, configure o ESA para usar HTTP.
No console do ESA, clique em Websites no painel de navegação à esquerda e clique no site desejado.
Na página de gerenciamento do site alvo, escolha no painel de navegação à esquerda.
-
Na seção Certificate Management, localize Origin Protocol and Port e clique em Configure. Configure os parâmetros e clique em Websites.
Parâmetro
Descrição
Valor de exemplo
Protocolo de origem
Selecione
HTTPpois a origem não suporta HTTPS.HTTPPorta HTTP
Mantenha o valor padrão de
80.80
4,4 Teste e publique a função de borda
Faça login no console do ESA e, no painel de navegação à esquerda, escolha .
Na página de lista do Origin Certificates, clique na função desejada.
-
Na página de detalhes da função, alterne para a aba Code. Substitua a variável
urlPrefixpelo seu nome de domínio de origemwww.example.come clique em Save.async function handleRequest(request) { const urlPrefix = 'www.example.com'; // The request URL of the HTML file. const staticDataUrl = 'http://' + urlPrefix + '/index.html'; // The request URL of the dynamic data. const dynamicDataUrl = 'http://' + urlPrefix + '/ItemsInfo.json'; // Use the Cache API to query page skeleton data. const htmlCache = await cache.get(staticDataUrl); let html = ''; if (htmlCache === undefined) { const htmlResponse = await fetch(staticDataUrl); html = await htmlResponse.text(); await cache.put(staticDataUrl, new Response(html, { headers: [["cache-control", "max-age=1000"]] })); } else { html = await htmlCache.text(); } // Fetch product data from the origin server. const jsonResponse = await fetch(dynamicDataUrl); const json = await jsonResponse.json(); // Encapsulate dynamic data into div blocks. let itemsHtml = ''; for (const item of json.data) { const itemHtml = ` <div class="bg-white overflow-hidden shadow rounded-lg"> <div class="p-4"> <img class="h-48 w-full object-cover" src="${item.image}" alt="Placeholder image of a product"> <h3 class="mt-2 text-gray-900 text-sm font-medium">${item.title}</h3> <div class="mt-4"> <span class="original-price">${item.originalPrice}</span> </div> <div class="mt"> <span class="text-gray-900 font-semibold">${item.discountPrice}</span> </div> </div> </div>`; itemsHtml += itemHtml; } // Replace #(itemsHtml) in the static HTML with dynamic data. const finalHtml = html.replace("#(itemsHtml)", itemsHtml); // Return the HTML page rendered at a POP to the browser. return new Response(finalHtml, { headers: { "content-type": "text/html;charset=UTF-8", }, }); } export default { async fetch(request) { return handleRequest(request); }, }; Clique em OK no canto superior direito para executar um teste local. Os logs de execução aparecem na seção inferior esquerda.
Após o sucesso do teste, clique em One-click Release para implantar o código em produção.
5. Verifique e limpe recursos
5,1 Verifique a solução
-
Após a publicação, verifique o resultado:
Abra um navegador e acesse o domínio da função de borda (por exemplo, https://<your_edge_function_domain_name>).
Confirme se a página carrega e se os dados do produto são renderizados dinamicamente.
Use as ferramentas de desenvolvedor do navegador para confirmar que os recursos estáticos estão em cache e que os dados dinâmicos são acelerados pelos POPs.


5,2 Limpe recursos (Opcional)
Se você não precisar mais desses recursos, exclua-os para evitar cobranças:
-
Exclua o site.
Faça login no console do ESA. No painel de navegação à esquerda, clique em Websites. Na página de lista de Gerenciamento de Sites, clique em Functions and Pages na coluna Actions.
-
Exclua a função de borda.
No console do ESA, escolha no painel de navegação à esquerda. Na página de lista do Functions and Pages, clique na função desejada. Na aba Basic Information, clique em Delete.
-
Libere a instância ECS.
Faça login no console do ECS. Na página Instance, localize a instância desejada. Na coluna Actions, escolha Release e siga as instruções na tela para liberar a instância.
-
Exclua um grupo de segurança.
Faça login no console do ECS. Na página Security Groups, localize o grupo de segurança desejado. Na coluna Actions, clique em Delete e siga as instruções na tela para excluir o grupo de segurança.
Arquivos de recursos
|
Conjunto de imagens de produtos |
|
|
Código do site e dados dos produtos |