全部产品
Search
文档中心

Function Compute:Buat aplikasi web dengan cepat menggunakan fungsi web

更新时间:Nov 11, 2025

Anda dapat dengan mudah membangun aplikasi web dan layanan API menggunakan fungsi web di Function Compute. Fungsi web kompatibel dengan kerangka kerja web populer, seperti Java SpringBoot, Python Flask, dan Node.js Express, sehingga memungkinkan migrasi langsung aplikasi yang sudah ada. Function Compute mengelola sumber daya komputasi dasar untuk Anda. Saat layanan diakses melalui browser atau URL, Function Compute secara otomatis memulai dan menyesuaikan skala instans sesuai kebutuhan. Ketika tidak ada permintaan, instans tersebut secara otomatis dihapus. Anda hanya membayar sumber daya yang digunakan.

Ikhtisar pembuatan fungsi web

Topik ini menjelaskan cara menerapkan aplikasi Flask menggunakan fungsi web di Function Compute. Prosesnya adalah sebagai berikut:

  1. Kembangkan dan uji aplikasi web: Buat proyek lokal menggunakan kode contoh. Edit dan uji kode API untuk memastikan API berfungsi sebagaimana mestinya. Jika Anda ingin memigrasikan aplikasi yang sudah ada, Anda dapat melewati langkah ini.

  2. Buat paket kode: Instal pustaka dependensi yang diperlukan di direktori proyek lokal, lalu kemas proyek menjadi file ZIP untuk diterapkan ke Function Compute.

  3. Unggah dan terapkan aplikasi: Konfigurasikan parameter pembuatan fungsi dan unggah paket kode untuk membuat fungsi.

  4. Uji fungsi web: Panggil fungsi web untuk memverifikasi bahwa aplikasi Flask berjalan dengan benar.

Prasyarat

Buat Akun Alibaba Cloud

Buat Akun Alibaba Cloud dan lengkapi verifikasi identitas.

Aktifkan Function Compute

Jika Anda mendaftarkan Akun Alibaba Cloud dan menyelesaikan verifikasi identitas setelah 27 Agustus 2024, Anda dapat langsung menggunakan Function Compute tanpa perlu aktivasi. Saat pertama kali masuk ke Konsol Function Compute, Anda juga dapat mengikuti petunjuk di layar untuk mengklaim paket sumber daya gratis. Untuk informasi selengkapnya, lihat Kuota uji coba.

Untuk Akun Alibaba Cloud yang didaftarkan sebelum 27 Agustus 2024, ikuti langkah-langkah berikut untuk mengaktifkan layanan.

  1. Kunjungi Halaman utama Function Compute.

  2. Klik Konsol, buka halaman aktivasi layanan, lalu klik Activate Now untuk mengaktifkan layanan dan menuju ke Konsol Function Compute.

    Catatan
    • Kami menyarankan agar Anda mengaktifkan layanan dengan Akun Alibaba Cloud dan mengelola fungsi serta aplikasi lainnya menggunakan Pengguna Manajemen Akses Sumber Daya (RAM). Anda dapat memberikan kebijakan akses yang diperlukan kepada Pengguna RAM berdasarkan Hak Istimewa Minimum (PoLP). Untuk informasi selengkapnya, lihat Kebijakan akses dan contoh.

  3. (Opsional) Saat pertama kali masuk ke Konsol Function Compute, klik OK pada kotak dialog Alibaba Cloud Service Authorization untuk membuat peran terkait layanan. Hal ini memungkinkan Function Compute mengakses layanan Alibaba Cloud lainnya.

    Setelah peran dibuat, Function Compute dapat mengakses sumber daya cloud Anda, seperti VPC, ECS, SLS, dan Container Registry.

Prosedur

Anda dapat membuat fungsi web dan menerapkan kode Anda dengan salah satu cara berikut.

  • Konsol Function Compute: Cocok untuk skenario seperti membangun aplikasi ringan atau melakukan validasi cepat. Anda dapat dengan cepat membuat satu fungsi.

  • Antarmuka baris perintah Serverless Devs: Cocok untuk skenario seperti mengelola proyek produksi kompleks dan mengotomatiskan penerapan. Anda dapat menggunakan file konfigurasi YAML untuk mengelola beberapa fungsi dan sumber daya cloud terkait. Untuk informasi selengkapnya, lihat Memulai dengan Cepat.

Untuk menyederhanakan proses, topik ini menjelaskan cara membuat fungsi di Konsol Function Compute.

Langkah 1: Kembangkan dan uji aplikasi web

Catatan

Jika Anda ingin memigrasikan aplikasi Flask yang sudah ada, Anda dapat melewati langkah ini dan lanjut ke Langkah 2: Buat paket kode.

  1. Buka jendela baris perintah baru di mesin lokal Anda. Jalankan perintah berikut untuk menginstal pustaka dependensi Flask dan tabulate yang diperlukan oleh aplikasi di lingkungan lokal Anda.

    pip install Flask tabulate
  2. Buat folder bernama code dan file bernama app.py di dalam folder tersebut. Tempel kode contoh berikut ke dalam file tersebut. Kode ini mengimplementasikan layanan kalender sederhana dan mengemasnya sebagai API. Ketika pengguna memberikan tahun dan bulan, misalnya Januari 2025, API akan mengembalikan tabel kalender yang sesuai.

    import calendar
    from flask import Flask, request
    from tabulate import tabulate
    import logging
    import json
    
    logger = logging.getLogger()
    app = Flask(__name__)
    
    
    @app.route("/", methods=["POST"])
    def get_month_calendar():
        # Dapatkan ID permintaan dan cetak log.
        requestId = request.headers.get('x-fc-request-id', '')
        logger.info("FC Invoke Start RequestId: " + requestId)
        # Dapatkan badan permintaan dan periksa formatnya.
        data = json.loads(request.stream.read().decode('utf-8'))
        if not ('year' in data and 'month' in data):
            message = "Request must be in a format such as {'year': '1999', 'month': '12'}"
            return message
    
        # Dapatkan tabel kalender.
        result = print_calendar(year=int(data['year']), month=int(data['month']))
        # Cetak log sebelum mengembalikan hasil untuk menunjukkan bahwa eksekusi fungsi telah selesai.
        logger.info("FC Invoke End RequestId: " + requestId)
        return result
    
    
    def print_calendar(year, month):
        # Dapatkan matriks kalender untuk tahun dan bulan yang ditentukan.
        cal = calendar.monthcalendar(year, month)
        # Ganti 0 dengan string kosong untuk hari-hari yang tidak termasuk dalam bulan yang ditentukan.
        cal = list(map(lambda sublist: list(map(lambda x: '' if x == 0 else x, sublist)), cal))
        # Buat header tabel.
        headers = ["Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"]
    
        # Gunakan tabulate untuk mencetak tabel kalender.
        return tabulate(cal, headers=headers, tablefmt="grid", stralign='center', numalign='center')
    
    
    if __name__ == "__main__":
        app.run(host='0.0.0.0', port=9000)
    
  3. Jalankan perintah python3 app.py untuk memulai aplikasi Flask Anda. Saat keluaran menampilkan Running on http://127.0.0.1:9000, aplikasi Flask Anda telah berhasil dimulai. Anda kemudian dapat menggunakan perintah cURL untuk menguji aplikasi.

    python3 app.py 
     * Menjalankan aplikasi Flask 'app'
     * Mode Debug: off
    PERINGATAN: Ini adalah server pengembangan. Jangan gunakan dalam penyebaran produksi. Gunakan server WSGI produksi sebagai gantinya.
     * Berjalan pada http://127.0.0.1:9000
     * Berjalan pada http://47.100.XX.XX:9000
    Tekan CTRL+C untuk keluar
  4. Buka jendela terminal baru dan gunakan cURL untuk mengirim permintaan contoh. Jika perintah berhasil dijalankan, tabel kalender akan dikembalikan.

    curl -X POST http://127.0.0.1:9000 -d '{"year": "2000", "month": "1"}'

    image

Ini menyelesaikan pembuatan dan pengujian proyek lokal.

Langkah 2: Buat paket kode

Buat paket kode lokal untuk Function Compute. Paket kode harus berisi item-item berikut:

  • File proyek yang diperlukan oleh aplikasi web.

  • Jika pustaka dependensi yang diperlukan oleh aplikasi tidak tersedia di lingkungan runtime fungsi web, paket kode juga harus menyertakan pustaka tersebut. Untuk informasi selengkapnya tentang pustaka dependensi bawaan di lingkungan runtime fungsi web, lihat Dependensi bawaan.

  1. Instal dependensi: Di direktori root proyek aplikasi web, jalankan perintah berikut untuk menginstal pustaka dependensi yang diperlukan (tabulate dalam contoh ini) ke dalam direktori tersebut. Setelah perintah dijalankan, direktori root proyek berisi file proyek dan pustaka dependensi.

    Catatan

    Lingkungan runtime Python untuk fungsi web sudah menyertakan pustaka Flask. Oleh karena itu, Anda hanya perlu menginstal tabulate untuk memenuhi kebutuhan aplikasi contoh.

    pip install -t . tabulate
  2. Kemas semua file di direktori root proyek.

    Linux atau macOS

    Di direktori root proyek, jalankan zip code.zip -r ./*. Perintah ini mengemas file proyek dan pustaka dependensi ke dalam file ZIP. Ini menyelesaikan pembuatan paket kode.

    Catatan

    Pastikan Anda memiliki izin baca dan tulis pada direktori tersebut.

    Windows

    Buka direktori proyek, pilih semua file, klik kanan pada file yang dipilih, lalu kemas menjadi file ZIP. Perintah ini mengemas file proyek dan pustaka dependensi ke dalam file ZIP. Ini menyelesaikan pembuatan paket kode.

Langkah 3: Buat fungsi web dan terapkan paket kode

  1. Pilih jenis fungsi web: Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, pilih Functions > Functions. Di bilah navigasi atas, pilih wilayah tempat Anda ingin membuat fungsi. Klik Create Function, pilih Web Function, lalu ikuti petunjuk untuk membuat fungsi.

  2. Pilih runtime: Pilih Custom Runtime > Python > Python 3.10. Runtime ini memiliki pustaka dependensi bawaan untuk kerangka kerja Flask.image

    Catatan
    • Untuk fungsi web, kami menyarankan Anda menggunakan Custom Runtime. Custom Runtime memungkinkan Anda menyesuaikan perintah startup dan port pendengar, serta mendukung penanganan permintaan konkuren. Built-in Runtime tidak memiliki fitur-fitur ini dan lebih cocok untuk menangani event yang dihasilkan oleh layanan Alibaba Cloud lainnya.

    • Jika Anda lebih suka penerapan berbasis kontainer, Anda juga dapat menggunakan Custom Image untuk membuat fungsi web. Lingkungan ini juga mendukung permintaan konkuren pada satu instans, tetapi Anda harus mengelola dependensinya sendiri.

    • Untuk perbandingan mendetail antara berbagai lingkungan runtime, lihat Perbandingan lingkungan runtime.

  3. Terapkan paket kode: Unggah paket kode ZIP yang Anda peroleh di Langkah 2. Tetapkan perintah startup menjadi python3 app.py dan port pendengar menjadi 9000. Jika Anda memigrasikan aplikasi Flask yang sudah ada, ubah konfigurasi agar sesuai dengan perintah startup dan port aplikasi Anda. Misalnya, port default Flask adalah 5000.

    Setelah menyelesaikan konfigurasi, klik Create dan tunggu hingga fungsi dibuat.image

Langkah 4: Uji fungsi

  1. Dapatkan URL fungsi: Di halaman detail fungsi, klik tab Triggers. Di kolom konfigurasi pemicu HTTP yang dituju, dapatkan Titik akhir publik.

    Jika Anda berada di lingkungan pengujian yang tidak memerlukan autentikasi, Anda dapat mengatur Authentication Method menjadi No Authentication saat membuat pemicu HTTP atau dengan mengubahnya setelahnya.

    image

  2. Uji fungsi: Anda dapat menggunakan cURL, Postman, atau klien HTTP apa pun untuk memanggil fungsi dan memverifikasi fungsionalitas aplikasi Flask. Sebagai contoh, untuk menggunakan cURL, jalankan perintah contoh berikut di baris perintah. Ganti URL dengan yang Anda peroleh pada langkah sebelumnya.

    curl https://******.cn-hangzhou.fcapp.run -d '{"year": "2025", "month": "1"}' 

    Perintah tersebut mengembalikan informasi kalender untuk Januari 2025. Keluaran berikut adalah contohnya.

    image

    Catatan
    • Jika Anda menggunakan konfigurasi pemicu HTTP default, menjalankan perintah contoh di atas akan mengembalikan error MissingRequiredHeader. Dalam kasus ini, jika Anda berada di lingkungan pengujian, Anda dapat mengubah Authentication Method pemicu menjadi No Authentication.

    • Perintah contoh dan keluaran pada langkah ini hanya berlaku untuk kode contoh. Jika Anda memigrasikan aplikasi yang sudah ada, panggil layanan Anda berdasarkan nama dan parameter operasi API yang sebenarnya. Untuk informasi selengkapnya, lihat Uji fungsi menggunakan cURL.

  3. (Opsional) Akses fungsi dari browser: Titik akhir publik yang disediakan oleh pemicu HTTP tidak dapat diakses dari browser karena memaksa unduhan file. Titik akhir ini hanya dimaksudkan untuk tujuan pengujian. Kami menyarankan agar Anda mengikat nama domain kustom ke fungsi untuk mengaktifkan akses browser dan penggunaan di lingkungan produksi. Untuk informasi selengkapnya, lihat Konfigurasi nama domain kustom.

(Opsional) Langkah 5: Bersihkan sumber daya

Function Compute adalah layanan bayar sesuai penggunaan. Anda tidak dikenai biaya untuk fungsi yang tidak digunakan. Namun, perhatikan layanan atau sumber daya Alibaba Cloud terkait lainnya, seperti data yang disimpan di OSS dan NAS, serta pemicu yang dikonfigurasi.

Untuk menghapus fungsi, masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, pilih Functions > Functions. Pilih wilayah. Di kolom Actions fungsi yang dituju, klik Delete. Di kotak dialog yang muncul, pastikan tidak ada sumber daya, seperti pemicu, yang terkait dengan fungsi tersebut, lalu konfirmasi penghapusan.

Langkah selanjutnya

Setelah membuat aplikasi web dan menerapkannya ke fungsi web, Anda dapat melakukan operasi berikut sesuai kebutuhan.

  • Kembangkan kode di konsol: Untuk menyederhanakan proses penerapan, Anda dapat menggunakan WebIDE di Konsol Function Compute untuk mengembangkan dan men-debug kode di cloud secara real-time. Metode ini cocok untuk pengembangan yang memerlukan iterasi cepat karena Anda tidak perlu membuat paket kode di mesin lokal. Untuk informasi selengkapnya, lihat Gunakan WebIDE.

    Catatan

    WebIDE hanya mendukung Python, Node.js, dan PHP. Untuk bahasa lain, seperti Java dan Go, Anda hanya dapat mengunggah file ZIP atau file biner yang telah dikompilasi dan dikemas.

  • Terapkan proyek secara berkelanjutan menggunakan Application Center: Untuk menerapkan integrasi berkelanjutan/penerapan berkelanjutan (CI/CD), Anda dapat menggunakan Application Center untuk secara otomatis membangun dan menerapkan kode Anda ke Function Compute di cloud. Untuk informasi selengkapnya, lihat Gunakan Application Center untuk menerapkan penyebaran berkelanjutan pada proyek Function Compute yang sudah ada.

  • Konfigurasi logging: Kami menyarankan agar Anda mengonfigurasi fitur logging untuk fungsi Anda guna mempermudah debugging, pemecahan masalah, atau audit keamanan. Untuk informasi selengkapnya, lihat Konfigurasi fitur logging.

Referensi

Untuk langkah-langkah menambahkan dependensi untuk setiap bahasa, lihat dokumen berikut:

Python

Terapkan paket kode

Node.js

Terapkan paket kode

Java

Kompilasi dan Terapkan Paket Kode

Go

Kompilasi dan Terapkan Paket Kode

C#

Kompilasi dan Terapkan Paket Kode

PHP

Terapkan paket kode