All Products
Search
Document Center

Function Compute:Buat aplikasi web dengan fungsi web

Last Updated:Apr 25, 2026

Anda dapat menggunakan fungsi web di Function Compute untuk dengan mudah membangun aplikasi web dan layanan API. Fungsi web kompatibel dengan berbagai framework web populer, seperti Java SpringBoot, Python Flask, dan Node.js Express, sehingga memungkinkan migrasi aplikasi yang sudah ada secara cepat. Function Compute mengelola sumber daya komputasi dasar untuk Anda. Saat layanan diakses melalui browser atau URL, sistem secara otomatis menyediakan dan menskalakan instans sesuai permintaan. Ketika tidak ada lalu lintas, instans tersebut dilepas secara otomatis, dan Anda hanya membayar sumber daya yang digunakan.

Ikhtisar

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

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

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

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

  4. Uji fungsi web: Panggil fungsi web untuk memverifikasi bahwa aplikasi Flask berjalan sebagaimana diharapkan.

Prasyarat

Buat Akun Alibaba Cloud

Buat Akun Alibaba Cloud dan lengkapi verifikasi nama asli.

Aktifkan Function Compute

Jika Anda mendaftarkan Akun Alibaba Cloud dan menyelesaikan verifikasi nama asli setelah 27 Agustus 2024, Anda dapat menggunakan Function Compute tanpa perlu mengaktifkannya terlebih dahulu. 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 Uji coba gratis.

Jika Anda mendaftarkan Akun Alibaba Cloud sebelum 27 Agustus 2024, ikuti langkah-langkah berikut untuk mengaktifkan layanan.

  1. Buka halaman produk Function Compute.

  2. Klik Console untuk membuka halaman aktivasi. Klik Activate Now untuk mengaktifkan layanan dan membuka Konsol Function Compute.

    Catatan
    • Kami menyarankan agar Anda menggunakan Akun Alibaba Cloud untuk mengaktifkan layanan dan Pengguna RAM untuk mengelola resource seperti fungsi. Anda dapat memberikan izin kepada Pengguna RAM berdasarkan prinsip Hak istimewa minimal. Untuk informasi selengkapnya, lihat Berikan izin kepada Pengguna RAM.

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

    Setelah peran dibuat, Function Compute dapat mengakses resource Anda dari layanan lain, seperti VPC, ECS, Log Service (SLS), dan Container Registry.

Prosedur

Anda dapat menggunakan salah satu metode berikut untuk membuat fungsi web dan menerapkan kode Anda.

  • Buat fungsi di Konsol Function Compute: Metode ini memungkinkan Anda membuat satu fungsi dengan cepat dan cocok untuk membangun aplikasi ringan atau validasi cepat.

  • Gunakan alat baris perintah Serverless Devs: Metode ini cocok untuk mengelola proyek produksi kompleks dan penerapan otomatis. Anda dapat menggunakan file konfigurasi YAML untuk mengelola beberapa fungsi dan resource cloud terkaitnya. 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

Catatan

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

  1. Buka jendela command-line baru di mesin lokal Anda dan jalankan perintah berikut untuk menginstal library Flask dan tabulate yang diperlukan.

    pip install Flask tabulate
  2. Buat folder bernama code dan file bernama app.py di dalamnya. Tempel kode contoh berikut ke dalam file tersebut. Kode ini mengimplementasikan layanan kalender sederhana yang dikemas sebagai API. API menerima tahun dan bulan, misalnya Januari 2025, dan mengembalikan tabel kalender untuk bulan tersebut.

    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 konten permintaan dan periksa format permintaan.
        data = json.loads(request.stream.read().decode('utf-8'))
        if not ('year' in data and 'month' in data):
            message = "Request must be in format like {'year': '1999', 'month': '12'}"
            return message
    
        # Dapatkan tabel kalender.
        result = print_calendar(year=int(data['year']), month=int(data['month']))
        # Cetak log yang menunjukkan eksekusi fungsi telah selesai sebelum hasil dikembalikan.
        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)
        # Ubah tanggal yang tidak termasuk dalam bulan tersebut dari 0 menjadi string kosong.
        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 menjalankan aplikasi Flask Anda. Jika output Running on http://127.0.0.1:9000 ditampilkan, berarti aplikasi Flask sedang berjalan. Anda kemudian dapat menggunakan perintah cURL untuk menguji aplikasi.

    python3 app.py 
     * Serving Flask app 'app'
     * Debug mode: off
    WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
     * Running on http://127.0.0.1:9000
     * Running on http://47.100.XX.XX:9000
    Press CTRL+C to quit
  4. Buka jendela terminal baru dan gunakan cURL untuk mengirim permintaan contoh. Perintah yang berhasil akan mengembalikan tabel kalender.

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

    image

Anda kini telah membuat dan menguji proyek secara lokal.

Langkah 2: Buat paket kode

Anda akan membuat paket kode secara lokal yang sesuai untuk Function Compute. Paket kode harus berisi konten berikut:

  • File proyek yang diperlukan oleh aplikasi web.

  • Jika aplikasi Anda memiliki dependensi yang tidak termasuk dalam runtime, Anda harus menambahkannya ke dalam paket kode. Untuk informasi tentang dependensi bawaan untuk runtime, lihat Dependensi bawaan.

  1. Instal dependensi: Di direktori root proyek aplikasi web Anda, jalankan perintah berikut untuk menginstal dependensi yang diperlukan (dalam contoh ini, tabulate) ke direktori tersebut. Perintah ini menginstal dependensi ke direktori root proyek Anda.

    Catatan

    Runtime fungsi web Python sudah menyertakan library Flask. Anda hanya perlu menginstal library tabulate agar aplikasi contoh dapat berjalan.

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

    Linux atau macOS

    Di direktori root proyek, jalankan perintah zip code.zip -r ./*. Perintah ini mengemas file proyek dan dependensinya ke dalam file ZIP, sehingga membuat paket kode.

    Catatan

    Pastikan Anda memiliki izin baca dan tulis pada direktori tersebut.

    Windows

    Buka direktori proyek, pilih semua file, klik kanan file-file tersebut, lalu kemas ke dalam file ZIP. Ini akan mengemas file proyek dan dependensinya ke dalam file ZIP, sehingga membuat paket kode.

Langkah 3: Buat dan terapkan fungsi

  1. Pilih jenis fungsi web: Masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Function Management > Functions. Di bilah navigasi atas, pilih wilayah tempat Anda ingin membuat fungsi. Pada halaman yang muncul, klik Create Function, lalu ikuti petunjuk di layar untuk membuat Web Function.

  2. Pilih runtime: Seperti yang ditunjukkan pada gambar berikut, pilih Custom Runtime. Runtime ini memiliki dependensi yang diperlukan oleh framework Flask.image

    Catatan
    • Kami menyarankan menggunakan Custom Runtime untuk fungsi web Anda. Custom Runtime memungkinkan Anda menentukan perintah startup dan port pendengar, serta mendukung penanganan permintaan konkuren. Built-in Runtimes tidak menyediakan fitur-fitur ini dan lebih cocok untuk menangani event yang dihasilkan oleh layanan cloud lainnya.

    • Jika Anda lebih memilih penerapan berbasis kontainer, Anda dapat menggunakan Custom Container untuk membuat fungsi web. Runtime ini juga mendukung penanganan permintaan konkuren, tetapi Anda harus mengelola dependensinya sendiri.

    • Untuk perbandingan detail antar runtime, lihat Pilih runtime.

  3. Terapkan paket kode: Seperti yang ditunjukkan pada gambar, unggah paket kode ZIP yang Anda buat di Langkah 2. Atur perintah startup menjadi python3 app.py dan port pendengar menjadi 9000. Jika Anda melakukan migrasi aplikasi Flask yang sudah ada, ubah konfigurasi berdasarkan perintah startup dan port aktual. Misalnya, port default Flask adalah 5000.

    Klik Create dan tunggu hingga fungsi dibuat.image

Langkah 4: Uji fungsi

  1. Dapatkan URL fungsi: Di halaman detail fungsi yang baru dibuat, klik tab Trigger. Di konfigurasi pemicu HTTP, salin Titik akhir publik.

    Jika Anda berada di Lingkungan pengujian dan tidak memerlukan autentikasi, Anda dapat mengubah Authentication Method menjadi No Authentication di konfigurasi pemicu HTTP saat atau setelah membuat pemicu.

    image

  2. Uji fungsi: Anda dapat menggunakan cURL, Postman, atau klien HTTP apa pun untuk memanggil fungsi dan memverifikasi bahwa aplikasi Flask berfungsi sebagaimana diharapkan. Contoh berikut menggunakan perintah cURL. Ganti URL dengan Titik akhir yang Anda salin pada langkah sebelumnya.

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

    API web mengembalikan informasi kalender untuk Januari 2025. Berikut ini adalah contoh output.

    image

    Catatan
    • Jika Anda menggunakan konfigurasi pemicu HTTP default, perintah akan mengembalikan error "MissingRequiredHeader". Jika Anda berada di Lingkungan pengujian, Anda dapat mengubah Authentication Method pemicu menjadi No Authentication.

    • Perintah contoh dan output pada langkah ini hanya berlaku untuk kode contoh. Jika Anda melakukan migrasi aplikasi yang sudah ada, panggil layanan berdasarkan nama dan parameter API aktual. Untuk informasi selengkapnya, lihat Gunakan cURL untuk menguji fungsi.

  3. (Opsional) Akses fungsi dari browser: Titik akhir publik yang disediakan oleh pemicu HTTP tidak dapat dibuka langsung di browser (yang dapat memicu unduhan paksa) dan 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 Konfigurasikan nama domain kustom.

(Opsional) Langkah 5: Bersihkan resource

Function Compute adalah layanan bayar sesuai penggunaan. Anda tidak dikenai biaya untuk fungsi yang tidak digunakan. Namun, Anda mungkin dikenai biaya untuk resource cloud terkait, seperti data yang disimpan di OSS dan Penyimpanan File NAS, serta pemicu yang dibuat.

Jika Anda perlu menghapus fungsi, masuk ke Konsol Function Compute. Di panel navigasi kiri, klik Function Management > Functions. Pilih wilayah. Di kolom Actions fungsi yang dituju, klik Delete. Di kotak dialog yang muncul, pastikan fungsi tersebut tidak terikat ke resource apa pun seperti pemicu, lalu konfirmasi penghapusan.

Operasi lanjutan

Sekarang Anda telah membuat dan menerapkan aplikasi web ke fungsi web, Anda dapat melakukan operasi lanjutan berikut berdasarkan kebutuhan Anda.

  • Kembangkan kode di konsol: Meskipun topik ini berfokus pada pengembangan lokal yang berguna untuk migrasi aplikasi yang sudah ada, Anda juga dapat menyederhanakan penerapan dengan menggunakan WebIDE. Metode ini menghilangkan kebutuhan untuk membuat paket kode secara lokal dan cocok untuk iterasi pengembangan cepat. 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.

  • Lakukan penyebaran berkelanjutan proyek menggunakan Serverless Application Center: Untuk mengotomatiskan build dan penerapan (CI/CD) kode Anda ke Function Compute, gunakan Serverless Application Center. Untuk informasi selengkapnya, lihat Implementasikan penyebaran berkelanjutan untuk proyek Function Compute yang sudah ada menggunakan Serverless Application Center.

  • Konfigurasikan logging: Untuk mempermudah debugging, troubleshooting, atau audit keamanan, kami menyarankan agar Anda mengonfigurasi logging untuk fungsi Anda. Untuk informasi selengkapnya, lihat Konfigurasikan fitur logging.

Referensi

Untuk informasi selengkapnya tentang cara menambahkan paket dependensi untuk berbagai bahasa, lihat topik-topik berikut:

Python

Terapkan paket kode Python

Node.js

Terapkan paket kode Node.js

Java

Kompilasi dan terapkan paket kode Java

Go

Kompilasi dan terapkan paket kode Go

C#

Kompilasi dan terapkan paket kode C#

PHP

Terapkan paket kode PHP