EAS支援在服務運行時配置動態參數,無需重啟服務即可生效,適用於限流配置、模型參數調整等情境。
功能介紹
動態參數是EAS提供的運行時配置能力,允許您在服務運行過程中即時修改參數配置,無需重啟服務即可生效。
與環境變數的區別:
環境變數:在服務啟動時注入,修改後需要重啟服務才會生效。
動態參數:運行時可修改,修改後立即生效,無需重啟服務。
核心優勢:
配置即時生效,快速同步到所有容器執行個體。
不影響服務運行,避免因重啟導致的服務中斷。
適合頻繁調整的配置項,如限流閾值、模型參數等。
使用情境
動態參數適用於以下情境:
動態調整限流配置:根據業務流量即時調整
rate_limit等限流參數。即時修改模型推理參數:調整
temperature、top_p、max_tokens等模型參數。調整記錄層級:在排查問題時臨時調整日誌輸出層級。
灰階發布開關控制:通過動態參數控制新功能的開關狀態。
A/B測試組態:快速切換不同的配置策略進行效果對比。
前提條件
使用動態參數功能前,需要在服務配置中開啟動態配置開關。在服務配置 JSON 的頂層添加 features 欄位:
{
"name": "your-service-name",
...其他配置,
"features": {
"eas.aliyun.com/enable-properties": "true"
}
}例外情況:當服務使用了LLM智能路由時,會預設開啟動態配置開關,無需手動設定。
操作步驟
步驟1:配置動態參數
動態參數支援兩種更新方式:
通過動態參數配置項更新(推薦):在目標服務概覽頁面的動態參數配置項中修改,修改後即時生效,不會觸發服務重啟。
通過服務配置更新(不推薦):直接修改服務配置 JSON 中的
properties欄位,會觸發服務更新。
以下介紹通過動態參數配置項進行更新的步驟:
在推理服务頁簽,單擊目標服務名稱進入概览頁面。
在环境信息地區的動態參數配置項,進行添加/修改配置。支援以下兩種方式添加參數:
表格方式:逐行添加參數名和參數值。
JSON方式:以JSON格式大量新增參數。
單擊提交儲存配置。
步驟2:驗證配置生效
配置儲存後,系統會自動將參數快速同步到所有容器執行個體。
設定檔路徑為:/eas/workspace/properties/service.json。
您可以在應用代碼中讀取該設定檔來使用動態參數。
使用樣本
以下樣本展示如何配置限流參數,以及在應用代碼中讀取動態參數。
配置限流參數:
{
"properties": {
"rate_limit": 100,
"max_concurrent_requests": 50,
"timeout_seconds": 30
}
}在應用中讀取動態參數(Python):
import json
# 讀取動態參數
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"Failed to load properties: {e}")
return {}
# 使用動態參數
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}")常見問題
Q:修改動態參數後多久生效?
動態參數修改後,會快速自動同步到所有容器執行個體的設定檔。但應用需要實現配置熱載入機制(如檔案監聽或定時輪詢)才能讀取到最新配置。
Q:如何?配置熱載入?
建議使用以下兩種方式實現配置熱載入:
檔案監聽:使用檔案系統監聽工具(如Python的watchdog庫)監聽設定檔變化,檔案更新後自動重新載入。
定時輪詢:定時(如每5秒)讀取設定檔,檢查內容是否變化並更新記憶體中的配置。
Q:動態參數是否支援儲存敏感資訊(如密鑰)?
不建議使用動態參數儲存敏感資訊。敏感資訊(如API密鑰、資料庫密碼)應使用環境變數或專門的Key Management Service(如阿里雲KMS)進行管理,確保安全性。