Menjalankan kode yang tidak tepercaya atau melakukan otomatisasi browser untuk agen AI pada sistem host menimbulkan risiko keamanan. Fungsi sandbox menyediakan lingkungan eksekusi yang stateful, aman, dan terisolasi. Setiap sesi memiliki instans fungsi khususnya sendiri, sehingga sangat ideal untuk skenario seperti interpreter kode dan otomatisasi browser. Topik ini menjelaskan cara membuat fungsi sandbox di Konsol Function Compute.
Sebelum memulai
Fungsi sandbox hanya tersedia di beberapa wilayah. Untuk melihat wilayah yang didukung, lihat Batas penggunaan fungsi sandbox. Jika wilayah saat ini tidak didukung, tab Sandbox Function tidak akan ditampilkan di area pemilihan jenis fungsi pada konsol.
Wajib
-
Aktifkan Function Compute: Aktifkan layanan di Konsol Function Compute.
-
Service-linked role (SLR): Fungsi sandbox menggunakan peran Alibaba Cloud service-linked role (SLR)
AliyunServiceRoleForFC(nama peran:aliyunserviceroleforfc) untuk membuat fungsi dan sesi Function Compute. Peran ini dibuat dan dikelola secara otomatis oleh Function Compute, sehingga biasanya tidak diperlukan tindakan manual. -
Izin RAM: Pastikan pengguna atau peran Anda saat ini memiliki izin yang diperlukan untuk membuat dan mengelola fungsi sandbox.
Opsi (untuk konfigurasi kustom)
-
Konfigurasi VPC (wajib untuk memasang NAS atau PolarFS): Siapkan ID VPC (
vpcId), ID grup keamanan (securityGroupId), dan ID vSwitch (vSwitchIds). -
ARN peran eksekusi (wajib untuk memasang OSS): Buat peran RAM dan dapatkan ARN-nya.
-
Akses Container Registry (ACR) (wajib untuk menggunakan gambar kontainer kustom): Pastikan Anda memiliki izin untuk mengakses repositori ACR.
Panduan cepat
Bagian ini memandu Anda membuat fungsi sandbox menggunakan semua pengaturan default: gambar Code Interpreter, 2 vCPU / 4.096 MB memori / 512 MB disk, dan afinitas sesi berbasis cookie.
-
Masuk ke Konsol Function Compute. Di bilah navigasi atas, pilih wilayah yang mendukung fungsi sandbox, seperti Tiongkok (Hangzhou).
-
Di bilah navigasi kiri, pilih Function Management > Function List, lalu klik Create Function.
-
Pada jendela pop-up pemilihan jenis fungsi, klik tab Sandbox Function, lalu klik tombol Create Sandbox Function di bagian bawah.
-
Di bagian konfigurasi gambar, gambar preset Code Interpreter dipilih secara default. Untuk menggunakan kemampuan eksekusi kode dan otomatisasi browser sekaligus, alihkan ke gambar All-in-One.
-
Masukkan Function Name, misalnya
my-first-sandbox, dan biarkan pengaturan lain tetap pada nilai default-nya. -
Klik Create dan tunggu hingga fungsi berhasil dibuat.
-
Setelah fungsi dibuat, Anda akan diarahkan secara otomatis ke halaman detail fungsi. Klik tab Session Management, klik Create Session, dan tunggu hingga status sesi berubah menjadi Active.
-
Di halaman detail sesi, jalankan perintah berikut di terminal bawaan untuk memverifikasi bahwa fungsi sandbox berfungsi dengan benar:
echo 'Hello, FC Sandbox!' python3 -c "print(1 + 1)"
Output yang diharapkan:
Hello, FC Sandbox!
2
Untuk konfigurasi kustom, lihat Prosedur (konfigurasi lengkap).
Prosedur (konfigurasi lengkap)
Langkah 1: Pilih jenis fungsi dan masukkan informasi dasar
-
Masuk ke Konsol Function Compute.
-
Di bilah navigasi kiri, pilih Function Management > Function List, lalu klik Create Function.
-
Pada jendela pemilihan jenis fungsi, klik tab Sandbox Function, lalu klik tombol Create Sandbox Function di bagian bawah.
-
Masukkan Function Name (wajib): 1 hingga 64 karakter. Nama harus dimulai dengan huruf atau garis bawah dan dapat berisi huruf, angka, garis bawah (_), dan tanda hubung (-). Nama tidak dapat diubah setelah dibuat.
Setelah Anda memilih jenis fungsi sandbox, sistem secara otomatis menetapkan parameter berikut. Parameter ini tidak dapat diubah dan tidak ditampilkan di konsol:
|
Parameter |
Nilai yang diatur otomatis |
Deskripsi |
|
runtime |
custom container |
Fungsi sandbox selalu dijalankan dari gambar kontainer. |
|
instance isolation mode |
Session Exclusive ( |
Setiap sesi memiliki instans fungsi khusus. |
|
instance concurrency ( |
200 |
Jumlah maksimum permintaan konkuren yang dapat ditangani oleh satu instans. |
|
session concurrency per instance ( |
1 |
Setiap instans hanya melayani satu sesi dalam satu waktu. |
Langkah 2: Konfigurasikan spesifikasi instans
Di panel Auto scaling and instance specification, konfigurasikan spesifikasi sumber daya untuk instans sandbox. Fungsi sandbox memiliki persyaratan minimum untuk spesifikasi instans. Konsol mencegah pengiriman jika nilai di bawah minimum.
|
Parameter |
Default |
Minimum |
Nilai yang tersedia |
Deskripsi |
|
CPU |
2 vCPU |
2 vCPU |
Pilih dari spesifikasi yang tersedia |
Jumlah core vCPU untuk fungsi sandbox. |
|
Memory |
4096 MB (4 GB) |
4096 MB |
Pilih dari spesifikasi yang tersedia |
Ukuran memori untuk fungsi sandbox. |
|
Disk size |
512 MB |
— |
512 MB, 10240 MB |
Untuk skenario sandbox, kami merekomendasikan memilih 10240 MB untuk memastikan ruang penyimpanan sementara yang mencukupi. |
Panel ini juga mencakup pengaturan kebijakan auto scaling, tempat Anda dapat mengonfigurasi jumlah instans terjadwal dan aturan penjadwalan penskalaan.
Langkah 3: Konfigurasikan gambar kontainer
Di panel Code Configuration, pilih sumber gambar. Sumber yang didukung meliputi Sample Image, ACR Personal Edition Image, ACR Enterprise Edition Image, Other Public Image, dan Custom Image Repository. Secara default, Sample Image dipilih.
Konsol menyediakan gambar sandbox pra-buat berikut (Code Interpreter Sandbox dipilih secara default):
|
Nama gambar |
URL gambar |
Default Port |
Deskripsi |
|
Code Interpreter Sandbox |
|
5000 |
Mendukung eksekusi kode Python/Node.js. Ideal untuk sandbox kode agen AI, analisis data, dan skenario serupa. |
|
Browser Tool Sandbox |
|
3000 |
Lingkungan otomatisasi browser. Cocok untuk web scraping, mengambil tangkapan layar, interaksi halaman, dan tugas terkait browser lainnya. |
|
All-in-One Sandbox |
|
5000 |
Mengintegrasikan interpreter kode dan alat browser. Ideal untuk skenario yang memerlukan kedua kemampuan tersebut. |
URL gambar pra-buat dipilih secara otomatis berdasarkan wilayah. Registri serverless-registry.cn-hangzhou.cr.aliyuncs.com digunakan untuk wilayah di Tiongkok daratan (Hangzhou, Shanghai, Beijing, dan Shenzhen). Registri serverless-registry.ap-southeast-1.cr.aliyuncs.com digunakan untuk wilayah Singapura dan Tiongkok (Hong Kong). Versi gambar saat ini adalah v0.9.30.
Panel ini juga mencakup pengaturan Timeout (default: 60 detik, rentang: 1 hingga 86.400 detik), yang menentukan batas waktu untuk satu permintaan. Ini bersifat independen dari siklus hidup sesi.
Panduan pemilihan gambar: Gambar pertama (Code Interpreter Sandbox) dipilih secara default. Gunakan Code Interpreter Sandbox hanya untuk eksekusi kode. Gunakan Browser Tool Sandbox hanya untuk otomatisasi browser. Jika Anda membutuhkan kedua kemampuan atau tidak yakin, pilih All-in-One Sandbox. Untuk menggunakan gambar sandbox Anda sendiri, pilih ACR atau repositori gambar kustom sebagai sumber gambar.
Langkah 4: Konfigurasikan isolasi dan siklus hidup sesi
Pengaturan sesi untuk fungsi sandbox berada di panel khusus Session Isolation and Affinity, yang berbeda dari panel kolaps Advanced Configuration yang digunakan untuk fungsi biasa.
Instance isolation mode: Nilai ini tetap pada Session Exclusive (SESSION_EXCLUSIVE) dan tidak dapat diubah.
Session affinity: Afinitas sesi diberlakukan untuk fungsi sandbox, dan default-nya adalah Cookie affinity (GENERATED_COOKIE). Sistem secara otomatis menghasilkan dan mengelola cookie untuk mengidentifikasi sesi, memastikan permintaan dari sesi yang sama diarahkan ke instans sandbox yang sama. Anda juga dapat memilih Header field affinity (HEADER_FIELD), yang menggunakan bidang header kustom untuk mengidentifikasi sesi. Jenis afinitas yang didukung:
|
Jenis afinitas |
Deskripsi |
|
Cookie Affinity (Default) |
Menggunakan cookie yang dihasilkan sistem. Tidak diperlukan konfigurasi tambahan. Cocok untuk akses browser, aplikasi web, dan skenario serupa. |
|
Header Field Affinity |
Menggunakan header HTTP kustom untuk afinitas sesi. Anda harus mengonfigurasi Nama Header yang dimulai dengan huruf, berisi 5 hingga 40 karakter (huruf, angka, garis bawah, dan tanda hubung), dan tidak dimulai dengan |
Konfigurasi siklus hidup sesi:
|
Parameter |
Default |
Rentang |
Deskripsi |
|
Session lifecycle ( |
86.400 detik (24 jam) |
60 hingga 86.400 detik |
Usia maksimum sesi. Setelah periode ini, sistem secara otomatis menghentikan sesi dan instans yang terikat dengannya. |
|
Session idle timeout ( |
1.800 detik (30 menit) |
60 detik hingga durasi siklus hidup sesi |
Periode ketidakaktifan sebelum sistem secara otomatis menghentikan sesi idle. Nilai ini tidak boleh melebihi usia maksimum sesi. |
Langkah 5: Konfigurasikan opsi lanjutan (opsional)
Di panel Advanced Configuration, konfigurasikan opsi berikut sesuai kebutuhan.
Peran RAM dan jaringan
-
Peran RAM: Pilih peran yang digunakan fungsi untuk mengakses sumber daya cloud lainnya.
-
Konfigurasi jaringan: Konfigurasikan akses jaringan VPC ke sumber daya privat. Ini wajib saat memasang NAS atau PolarFS.
Pemasangan penyimpanan
Fungsi sandbox mendukung pemasangan jenis penyimpanan berikut untuk menyediakan penyimpanan data persisten atau bersama bagi instans sandbox.
|
Jenis penyimpanan |
Titik pemasangan maksimum |
Prasyarat |
|
NAS |
5 |
Konfigurasi VPC |
|
OSS |
5 |
execution role ARN |
|
PolarFS |
5 |
Konfigurasi VPC |
-
Memasang NAS atau PolarFS memerlukan konfigurasi VPC lengkap (ID VPC, ID grup keamanan, dan ID vSwitch).
-
Saat Anda memasang NAS dan PolarFS secara bersamaan,
UserIDdanGroupIDkeduanya harus identik. -
mountDirharus unik di seluruh jenis penyimpanan yang dipasang.
Observabilitas
-
Konfigurasi log: Konfigurasikan Log Service untuk mengumpulkan log eksekusi fungsi. Pengumpulan log otomatis diaktifkan secara default.
-
Tracing: Konfigurasikan tracing untuk memantau rantai panggilan.
Konfigurasi lainnya
-
Kelompok sumber daya: Pilih kelompok sumber daya untuk kategorisasi sumber daya dan kontrol izin.
-
Zona waktu: Atur zona waktu runtime untuk fungsi. Default-nya adalah UTC.
-
Variabel lingkungan: Konfigurasikan pasangan kunci-nilai yang dapat dibaca sebagai variabel lingkungan saat runtime.
-
Timeout idle: Atur waktu setelah instans idle dikembalikan.
Langkah 6: Selesaikan pembuatan
Setelah Anda memastikan semua konfigurasi sudah benar, klik Create. Setelah fungsi berhasil dibuat, sistem akan mengarahkan Anda secara otomatis ke halaman detail fungsi.
Kuota dan batasan
|
Batas |
Kendala |
|
instance isolation mode |
Tetap pada |
|
instance concurrency |
Tetap pada 200 dan tidak dapat diubah. |
|
session concurrency per instance |
Tetap pada 1 dan tidak dapat diubah. |
|
Jumlah titik pemasangan |
Maksimal 5 titik pemasangan untuk setiap jenis penyimpanan. |
|
Nama fungsi |
1 hingga 64 karakter. Harus dimulai dengan huruf atau garis bawah. |
|
Timeout |
1 hingga 86.400 detik |
|
Siklus Hidup Sesi Tunggal |
60 hingga 86.400 detik |
|
Timeout idle sesi |
60 detik hingga durasi siklus hidup sesi yang dikonfigurasi |