All Products
Search
Document Center

Edge Security Acceleration:Percepat rendering website dengan Functions and Pages

Last Updated:Aug 26, 2026

Gunakan Functions and Pages untuk memisahkan konten statis dan dinamis guna mempercepat pemuatan halaman. Situs e-commerce contoh menunjukkan bagaimana Functions and Pages merender halaman di POP tepi untuk waktu pemuatan yang lebih cepat.

Ikhtisar solusi

Untuk memisahkan dan mempercepat konten statis dan dinamis:

  1. Konfigurasikan situs ESA: Tambahkan domain Anda ke ESA untuk akselerasi.

  2. Deploy sumber daya statis: Simpan gambar di OSS dan konfigurasikan nama domain yang dipercepat di ESA.

  3. Deploy sumber daya dinamis: Deploy layanan Python pada server ECS dan konfigurasikan nama domain di ESA untuk mempercepat permintaan dinamis.

  4. Konfigurasikan Functions and Pages: Buat fungsi dan tetapkan domain. Fungsi tersebut merender halaman di POP tepi untuk respons yang lebih cepat.

Sebelum memulai

Ganti nama domain contoh berikut dengan nama domain aktual Anda: www.example.com (origin), shopping.example.com (dipercepat), dan images.example.com (sumber daya statis). Gunakan nama domain aktual Anda sepanjang panduan ini.

1. Konfigurasikan situs

Tambahkan situs Anda untuk mengaktifkan akselerasi.

  1. Di konsol ESA, pilih Websites dan klik Add Website.

  2. Pada halaman Enter Website, masukkan situs Anda, misalnya, example.com, lalu klik Next.

  3. Pada halaman Select Location and DNS Setup, di bagian Location for Acceleration and Protection, pilih wilayah tempat situs Anda memerlukan layanan akselerasi aman. Untuk DNS Setup, pilih CNAME lalu klik Next.

  4. Pada halaman Select Plan, beli New Plans atau pilih Purchased Plans. Ikuti petunjuk di layar untuk menyelesaikan pembelian.

    Beli paket baru

    Pada halaman New Plans, pilih paket yang sesuai dengan kebutuhan Anda.

    image

    Bind paket yang sudah ada

    Jika Anda memiliki paket yang sudah ada, pilih paket tersebut pada tab Purchased Plans.

    image

  5. Di ESA console, klik Websites di panel navigasi kiri. Di halaman Manajemen Situs, klik situs target. Di halaman Overview, verifikasi kepemilikan domain Anda.

    1. Salin Record Value dari rekaman TXT.

      Login ke konsol penyedia DNS Anda (contoh ini menggunakan Alibaba Cloud) dan tambahkan rekaman TXT dengan parameter berikut:

      • Type: TXT

      • Host: _esaauth

      • Value: tempel nilai verifikasi yang Anda salin (diawali dengan verify_)

      • Request source: Default

      • TTL: 10 menit (disarankan)

      Bersihkan rekaman TXT yang tidak digunakan agar panjang total rekaman tidak melebihi batas dan mengganggu resolusi DNS.

    2. Di konsol DNS Alibaba Cloud, pilih Public DNS > Authoritative Domain Names dari panel navigasi kiri. Di tab Authoritative Domain Names, temukan nama domain situs target lalu klik DNS Settings.

    3. Di DNS Settings, klik Add Record. Tambahkan rekaman dengan pengaturan berikut lalu klik OK.

      Parameter

      Contoh nilai

      Record type

      TXT

      Host record

      _esaauth

      Record value

      verify_a186***be8 (Nilai rekaman yang disediakan di konsol.)

      TTL

      10 menit

    4. Di ESA console, buka halaman ikhtisar situs target lalu klik Verify.

    5. Verifikasi berhasil: Pesan Verification successful mengonfirmasi penyelesaian.

      Verifikasi gagal: Jika muncul Verification failed, periksa pengaturan DNS lalu klik Verify lagi.

2. Konfigurasikan sumber daya statis

2.1 Siapkan lingkungan dan sumber daya

  1. Login ke konsol OSS, buka halaman Buckets, lalu klik Create Bucket. Masukkan Bucket Name, pertahankan pengaturan default lainnya, lalu klik Create.

    Pada contoh ini, Bucket Name diatur ke website-resources-shopping dan Region diatur ke China (Hangzhou).

  2. Pilih bucket yang telah Anda buat. Di halaman Files, ekstrak kumpulan gambar produk dari File sumber daya lalu unggah gambar-gambar tersebut ke direktori root bucket.

    Catatan

    Simpan sumber daya gambar di direktori root bucket OSS.

2.2 Konfigurasikan domain yang dipercepat untuk sumber daya statis

  1. Di konsol ESA, pilih Websites, lalu di kolom Website, klik situs target.

  2. Di bilah navigasi kiri, klik DNS > Records > Add Record, lalu tambahkan rekaman DNS berdasarkan Record Type.

    Parameter

    Contoh nilai

    Record Type

    CNAME

    Hostname

    images

    Proxy Status

    Enabled

    Record Value

    OSS

    Access Type

    Private Access (STS Temporary Token)

    Authorization

    Diotorisasi secara default untuk akses akun yang sama.

    OSS Bucket

    website-resources-shopping.*******.aliyuncs.com

    Origin Host

    Follow Origin Domain Name

  3. Pilih Image/Video untuk tipe rekaman, lalu klik OK.

  4. Setelah rekaman DNS dibuat, salin Hostname dan Record Value dari halaman wizard konfigurasi CNAME.

    Saat menambahkan rekaman di konsol DNS Alibaba Cloud, atur Type ke CNAME - Arahkan nama domain ke nama domain lain, masukkan nilai yang disalin di Host dan Value, pilih Default untuk Request source, dan pertahankan TTL pada 10 menit (disarankan).

  5. Buka konsol DNS Alibaba Cloud. Di panel navigasi kiri, pilih Public DNS > Authoritative Domain Names. Di tab Authoritative Domain Names, temukan nama domain situs target lalu klik DNS Settings.

  6. Di DNS Settings, klik Add Record. Tambahkan rekaman dengan pengaturan berikut lalu klik OK.

    Parameter

    Contoh nilai

    Record type

    CNAME

    Host record

    images

    Record value

    images.example.com.**.*******.com

    TTL

    10 menit

  7. Kembali ke halaman wizard konfigurasi CNAME dari Langkah 4. Di langkah 3. Verify the CNAME record, klik Query. Jika rekaman CNAME telah berlaku, konfigurasi CNAME selesai.

    Catatan

    Rekaman CNAME mungkin memerlukan beberapa menit untuk berlaku.

  8. Masukkan http://<your_accelerated_domain_name>/1.png di browser Anda untuk memverifikasi bahwa gambar ditampilkan.

    Catatan

    Jika muncul error 404, sesuaikan URL agar sesuai dengan path direktori gambar. Contohnya: http://<your_accelerated_domain_name>/images/1.png.

3. Deploy sumber daya dinamis

3.1 Siapkan lingkungan

  1. Login ke konsol ECS.

  2. Di panel navigasi kiri, pilih Instances & Images > Instances. Di bilah menu atas, pilih wilayah China (Hangzhou).

  3. Di halaman Instances, klik Create Instance. Lalu, buat instance ECS di halaman pembelian.

Parameter

Contoh nilai

metode penagihan

Pay-As-You-Go

Wilayah

China (Hangzhou)

Jaringan dan zona

VPC default dan vSwitch default di zona tersebut

Tipe instans

ecs.e-c1m1.large (2 vCPU, 2 GiB)

Image

Pilih Alibaba Cloud Linux dari Public Image.

Versi image

Alibaba Cloud Linux 3.2104 LTS 64-bit

Tipe disk sistem

disk cloud ESSD

Ukuran disk sistem

40 GiB

IP publik

Pilih Assign Public IPv4 Address.

metode penagihan bandwidth

Pay-by-data-transfer

Bandwidth puncak

5 Mbps

security group

Create Security Group (Di Open IPv4 Port/Protocol, pilih HTTP(TCP:80).)

Pengaturan manajemen

Custom Password (Tentukan password Anda.)

3.2 Deploy sumber daya dinamis

  1. Login ke konsol ECS.

  2. Di panel navigasi kiri, pilih Instances & Images > Instances. Di bilah menu atas, pilih wilayah China (Hangzhou).

  3. Di halaman Instances, temukan instans target lalu klik ID instans untuk membuka halaman detail instans.

  4. Klik Remote Connection, pilih Connect via Workbench, lalu klik Log On Now. Masukkan kata sandi logon untuk menyelesaikan login.

  5. Unduh kode website dan data produk dari File sumber daya, ekstrak paketnya, lalu unggah kedua file tersebut ke server ECS.

  6. Di file ItemInfo.json, ganti images.example.com dengan nama domain yang dipercepat yang dikonfigurasi di Bagian 2.2.

    Pilih File > Open New File Management > Upload File untuk mengunggah kedua file ke server.

  7. Di konsol Workbench, jalankan perintah berikut untuk memulai server HTTP.

    cd /  # Buka direktori root sistem.
    nohup python -m http.server 80 &  # Mulai layanan HTTP di port 80 di latar belakang.
  8. Di browser Anda, masukkan http://<your_public_ip>/ItemsInfo.json untuk memverifikasi bahwa data produk dinamis dikembalikan.

3.3 Konfigurasikan domain yang dipercepat untuk sumber daya dinamis

  1. Di konsol ESA, pilih Websites. Di kolom Actions situs target, klik ikon lalu pilih DNS Records.

  2. Di panel navigasi kiri, pilih DNS > Records.

  3. Di halaman daftar rekaman, klik Add Record, konfigurasikan parameter, lalu klik Next.

    Parameter

    Contoh nilai

    Record type

    A/AAAA

    Host record

    www

    Proxy status

    Enabled

    Record value/origin

    10.0.x.x (Alamat IP publik instans ECS target)

    TTL

    Auto

  4. Pilih API untuk tipe rekaman lalu klik OK.

  5. Setelah rekaman DNS dibuat, salin Hostname dan Record Value dari halaman wizard konfigurasi CNAME.

    Catatan

    Biarkan halaman ini tetap terbuka. Anda akan kembali untuk memverifikasi rekaman CNAME di Langkah 8.

  6. Buka konsol DNS Alibaba Cloud. Di panel navigasi kiri, pilih Public DNS > Authoritative Domain Names. Di tab Authoritative Domain Names, temukan nama domain situs target lalu klik DNS Settings.

  7. Di DNS Settings, klik Add Record. Tambahkan rekaman dengan pengaturan berikut lalu klik OK.

    Parameter

    Contoh nilai

    Record type

    CNAME

    Host record

    www

    Record value

    www.example.com.**.*******.com (Nilai rekaman dari wizard konfigurasi CNAME)

    TTL

    10 menit

  8. Kembali ke halaman wizard konfigurasi CNAME dari Langkah 5. Di langkah 3. Verify the CNAME record, klik Query. Jika rekaman CNAME telah berlaku, konfigurasi CNAME selesai.

    Catatan

    Rekaman CNAME mungkin memerlukan beberapa menit untuk berlaku.

4. Konfigurasikan Functions and Pages

4.1 Buat Functions and Pages

  1. Login ke ESA console. Di panel navigasi kiri, pilih Edge Computing > Functions and Pages.

  2. Klik Create. Untuk metode pembuatan, pilih Function Templates. Pilih templat Hello World lalu klik Next.

  3. Masukkan Routine Name, tambahkan deskripsi jika diperlukan, lalu klik Submit.

  4. Tambahkan nama domain untuk Functions and Pages.

    1. Login ke ESA console. Di panel navigasi kiri, pilih Edge Computing > Functions and Pages.

    2. Di halaman daftar Functions and Pages, klik fungsi target.

    3. Di halaman detail fungsi, beralih ke tab Domain Name lalu klik Add Domain Name. Tetapkan nama domain shopping.example.com ke fungsi edge lalu klik OK.

    4. Di area binding domain, temukan nama domain fungsi edge yang baru saja Anda buat. Di kolom Actions, klik View DNS Records. Di halaman manajemen rekaman DNS, salin nilai CNAME untuk nama domain fungsi edge.

    5. Masuk ke Konsol Alibaba Cloud DNS. Di panel navigasi kiri, pilih Public DNS > Authoritative Domain Names. Pada tab Authoritative Domain Names, temukan nama domain situs target, lalu klik DNS Settings.

    6. Di DNS Settings, klik Add Record. Tambahkan rekaman dengan pengaturan berikut lalu klik OK.

      Parameter

      Deskripsi

      Contoh nilai

      Record type

      Pilih tipe rekaman DNS.

      CNAME

      Host record

      Masukkan rekaman host berdasarkan awalan domain.

      shopping

      Record value

      Masukkan nilai CNAME dari domain fungsi edge.

      shopping.example.com.**.*******.com

      TTL

      Siklus pembaruan DNS. Pertahankan nilai default.

      10 menit

    7. Segarkan halaman rekaman DNS dan periksa apakah CNAME Status dari nama domain fungsi edge berubah dari To be configured menjadi Configured.

      Catatan

      Rekaman CNAME mungkin memerlukan beberapa menit untuk berlaku.

4.2 Konfigurasikan sertifikat edge

ESA mengenkripsi permintaan client-ke-POP dengan SSL/TLS. Untuk praktik ini, ajukan sertifikat gratis. Konfigurasikan sertifikat edge.

  1. Di ESA console, klik Websites di panel navigasi kiri, lalu klik situs target.

  2. Di halaman manajemen situs target, pilih SSL/TLS > Edge Certificates dari panel navigasi kiri.

  3. Di bagian Edge Certificates, temukan SSL/TLS lalu klik sakelar untuk mengaktifkannya.

  4. Di bagian Edge Certificates, temukan Certificate Management lalu klik Apply for Free Certificate. Konfigurasikan parameter lalu klik OK.

    Parameter

    Deskripsi

    Contoh nilai

    Certificate authority

    Gunakan nilai default.

    Let's Encrypt

    Certificate domain names

    Masukkan nama domain statis, dinamis, dan fungsi edge yang dikonfigurasi pada langkah sebelumnya.

    images.example.com

    www.example.com

    shopping.example.com

  5. Penerbitan sertifikat memerlukan waktu 5 hingga 10 menit. Sertifikat kemudian secara otomatis dideploy ke ESA.

4.3 Konfigurasikan protokol dan port origin

ESA menggunakan HTTPS untuk pengambilan asal secara default. Karena origin pada contoh ini tidak mendukung HTTPS, konfigurasikan ESA untuk menggunakan HTTP sebagai gantinya.

  1. Di ESA console, klik Websites di panel navigasi kiri, lalu klik situs target.

  2. Di halaman manajemen situs target, pilih Edge Certificates di panel navigasi kiri.

  3. Di bagian Origin Certificates, temukan Origin Protocol and Port lalu klik Configure. Konfigurasikan parameter lalu klik OK.

    Parameter

    Deskripsi

    Contoh nilai

    Origin protocol

    Pilih HTTP karena origin tidak mendukung HTTPS.

    HTTP

    HTTP port

    Pertahankan nilai default 80.

    80

4.4 Uji dan publikasikan fungsi edge

  1. Login ke ESA console, lalu di panel navigasi kiri, pilih Edge Computing > Functions and Pages.

  2. Di halaman daftar Functions and Pages, klik fungsi target.

  3. Di halaman detail fungsi, beralih ke tab Code. Ganti variabel urlPrefix dengan nama domain origin Anda www.example.com, lalu klik Save.

    // Komentar: Fungsi ini menangani permintaan HTTP dan merender halaman HTML dengan data dinamis.
    async function handleRequest(request) {
        const urlPrefix = 'www.example.com';
        // URL permintaan file HTML.
        const staticDataUrl = 'http://' + urlPrefix + '/index.html';
        // URL permintaan data dinamis.
        const dynamicDataUrl = 'http://' + urlPrefix + '/ItemsInfo.json';
    
        // Gunakan Cache API untuk mengambil data kerangka halaman.
        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();
        }
    
        // Ambil data produk dari server origin.
        const jsonResponse = await fetch(dynamicDataUrl);
        const json = await jsonResponse.json();
    
        // Bungkus data dinamis ke dalam blok div.
        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="Gambar placeholder produk">
                                <h3 class="mt-2 text-gray-900 text-sm font-medium">${item.title}</h3>
                                <div class="mt-4">
                                    ${item.originalPrice}
                                </div>
                                <div class="mt">
                                    ${item.discountPrice}
                                </div>
        
                            </div>
                        </div>`;
            itemsHtml += itemHtml;
        }
    
        // Ganti #(itemsHtml) di HTML statis dengan data dinamis.
        const finalHtml = html.replace("#(itemsHtml)", itemsHtml);
    
        // Kembalikan halaman HTML yang dirender di POP ke browser.
        return new Response(finalHtml, {
            headers: {
                "content-type": "text/html;charset=UTF-8",
            },
        });
    }
    
    export default {
        async fetch(request) {
            return handleRequest(request);
        },
    };
    
  4. Klik Request di pojok kanan atas untuk menjalankan pengujian lokal. Log eksekusi muncul di bagian kiri bawah.

  5. Setelah pengujian berhasil, klik One-click Release untuk mendeploy kode ke produksi.

5. Verifikasi dan bersihkan sumber daya

5.1 Verifikasi solusi

  1. Setelah dipublikasikan, verifikasi hasilnya:

    • Buka browser dan akses domain fungsi edge (misalnya, https://<your_edge_function_domain_name>).

    • Verifikasi bahwa halaman dimuat dan data produk dirender secara dinamis.

    • Gunakan alat developer browser untuk memastikan bahwa sumber daya statis di-cache dan data dinamis dipercepat oleh POP.

Jika verifikasi berhasil, halaman menampilkan saluran pakaian wanita pusat perbelanjaan: kotak pencarian di bagian atas, tab navigasi kategori seperti Dresses, T-shirts, Jeans, Coats, dan Sportswear, serta kisi kartu produk. Setiap kartu menampilkan gambar produk, nama produk, harga asli yang dicoret, dan harga promosi berwarna merah. Hal ini menunjukkan bahwa data produk dirender secara dinamis di POP tepi.

Di panel Network DevTools, pilih permintaan sumber daya statis seperti gambar lalu periksa Response Headers. Kolom berikut mengonfirmasi cache hit CDN:

  • X-Site-Cache-Status: nilainya HIT, yang menunjukkan bahwa sumber daya disajikan dari cache POP tepi.

  • X-Swift-Cachetime: nilainya 3600, yang menunjukkan bahwa cache berlaku selama 3600 detik.

  • X-Swift-Savetime: waktu saat sumber daya ditulis ke cache.

5.2 Bersihkan sumber daya (Opsional)

Jika Anda tidak lagi memerlukan sumber daya ini, hapus untuk menghindari biaya:

  1. Hapus situs.

    Login ke ESA console. Di panel navigasi kiri, klik Websites. Di halaman daftar Manajemen Situs, klik Delete di kolom Actions.

  2. Hapus fungsi edge.

    Di ESA console, pilih Edge Computing > Functions and Pages di panel navigasi kiri. Di halaman daftar Functions and Pages, klik fungsi target. Di tab Basic Information, klik Delete Routine.

  3. Lepaskan instance ECS.

    Login ke konsol ECS. Di halaman Instance, temukan instance target. Di kolom Actions, pilih Release lalu ikuti petunjuk di layar untuk melepaskan instance.

  4. Hapus security group.

    Login ke konsol ECS. Di halaman Security Groups, temukan security group target. Di kolom Actions, klik Delete lalu ikuti petunjuk di layar untuk menghapus security group.

File sumber daya

Kumpulan gambar produk

Product image set.zip

Kode website dan data produk

Website code and product data.zip