EAS memungkinkan Anda mengonfigurasi parameter dinamis untuk suatu layanan saat waktu proses. Perubahan ini langsung berlaku tanpa perlu me-restart layanan, sehingga ideal untuk menyesuaikan konfigurasi rate-limiting atau menyetel parameter model.
Ikhtisar
Parameter dinamis memungkinkan konfigurasi saat waktu proses di EAS, sehingga Anda dapat mengubah pengaturan parameter selagi layanan sedang berjalan. Perubahan tersebut langsung berlaku tanpa memerlukan restart layanan.
Perbedaan dari variabel lingkungan:
Variabel lingkungan: Diinjeksikan saat layanan dimulai. Perubahan memerlukan restart layanan agar berlaku.
Parameter dinamis: Dapat diubah saat waktu proses. Perubahan langsung berlaku tanpa restart layanan.
Keunggulan utama:
Perubahan konfigurasi berlaku secara real time dan disinkronkan ke seluruh instans container.
Ketersediaan layanan tidak terganggu, sehingga mencegah gangguan akibat restart.
Ideal untuk pengaturan yang sering disesuaikan, seperti ambang batas rate-limiting dan parameter model.
Kasus penggunaan
Parameter dinamis cocok untuk skenario berikut:
Menyetel konfigurasi rate-limiting secara dinamis: Sesuaikan parameter rate-limiting seperti
rate_limitsecara real time berdasarkan trafik bisnis.Memodifikasi parameter inferensi model secara real time: Sesuaikan parameter model seperti
temperature,top_p, danmax_tokens.Menyesuaikan tingkat log: Sementara waktu ubah tingkat output log untuk troubleshooting.
Mengontrol fitur flag untuk rilis canary: Gunakan parameter dinamis untuk mengaktifkan atau menonaktifkan fitur baru.
Konfigurasi Pengujian A/B: Beralih cepat antar konfigurasi berbeda untuk membandingkan kinerjanya.
Prasyarat
Untuk menggunakan parameter dinamis, Anda harus mengaktifkan konfigurasi dinamis dalam konfigurasi layanan Anda. Tambahkan bidang features di tingkat atas JSON konfigurasi layanan:
{
"name": "your-service-name",
...other configurations,
"features": {
"eas.aliyun.com/enable-properties": "true"
}
}Pengecualian: Jika layanan Anda menggunakan routing cerdas berbasis LLM, konfigurasi dinamis diaktifkan secara default. Tidak diperlukan konfigurasi manual.
Prosedur
Langkah 1: Konfigurasikan parameter dinamis
Anda dapat memperbarui parameter dinamis dengan dua cara:
Perbarui di bagian Dynamic Parameters (Direkomendasikan): Ubah parameter di bagian Dynamic Parameters pada halaman Overview layanan. Perubahan langsung berlaku secara real time tanpa memicu restart layanan.
Perbarui konfigurasi layanan (Tidak direkomendasikan): Ubah langsung bidang
propertiesdalam JSON konfigurasi layanan. Metode ini memicu pembaruan layanan.
Langkah-langkah berikut menjelaskan metode yang direkomendasikan:
Pada tab Inference Service, klik nama layanan target untuk membuka halaman Overview-nya.
Di bagian Environment Information, tambahkan atau ubah parameter di Dynamic Parameters. Anda dapat menambahkan parameter dengan salah satu cara berikut:
Table View: Tambahkan nama dan nilai parameter baris per baris.
JSON View: Tambahkan parameter secara massal dalam format JSON.
Klik Submit untuk menyimpan konfigurasi.
Langkah 2: Verifikasi konfigurasi
Setelah Anda menyimpan konfigurasi, sistem segera menyinkronkan parameter ke file konfigurasi pada setiap instans container.
Jalur file konfigurasi adalah /eas/workspace/properties/service.json.
Dalam kode aplikasi Anda, baca file konfigurasi ini untuk menggunakan parameter dinamis.
Contoh penggunaan
Contoh berikut menunjukkan cara mengonfigurasi parameter rate-limiting, lalu membacanya dalam kode aplikasi Anda.
Konfigurasikan parameter rate-limiting:
{
"properties": {
"rate_limit": 100,
"max_concurrent_requests": 50,
"timeout_seconds": 30
}
}Baca parameter dinamis dalam aplikasi (Python):
import json
# Muat parameter dinamis.
def load_properties():
try:
with open('/eas/workspace/properties/service.json', 'r') as f:
properties = json.load(f)
return properties
except Exception as e:
print(f"Gagal memuat properties: {e}")
return {}
# Gunakan parameter dinamis.
properties = load_properties()
rate_limit = properties.get('rate_limit', 100)
max_concurrent = properties.get('max_concurrent_requests', 50)
print(f"Rate limit: {rate_limit}")
print(f"Max concurrent requests: {max_concurrent}")FAQ
T: Kapan perubahan parameter berlaku?
Setelah Anda mengubah parameter dinamis, perubahan tersebut segera disinkronkan ke file konfigurasi pada setiap instans container. Namun, aplikasi Anda harus menerapkan mekanisme hot-reloading konfigurasi, seperti file watching atau polling terjadwal, agar konfigurasi terbaru diterapkan.
T: Bagaimana cara menerapkan hot-reloading konfigurasi?
Kami merekomendasikan metode berikut untuk menerapkan hot-reloading konfigurasi:
File watching: Gunakan watcher sistem file, seperti library watchdog Python, untuk memantau perubahan pada file konfigurasi dan secara otomatis memuat ulang konfigurasi saat diperbarui.
Scheduled polling: Baca file konfigurasi secara berkala, misalnya setiap 5 detik. Periksa apakah kontennya berubah, lalu perbarui konfigurasi di memori sesuai kebutuhan.
T: Bisakah saya menggunakan parameter dinamis untuk rahasia (secrets)?
Kami sangat menyarankan agar Anda tidak menggunakan parameter dinamis untuk menyimpan informasi sensitif. Rahasia seperti Kunci API dan kata sandi database harus dikelola menggunakan variabel lingkungan atau layanan manajemen rahasia khusus, seperti Alibaba Cloud KMS, demi keamanan yang lebih baik.