EAS vous permet de configurer des paramètres dynamiques pour un service au moment de l'exécution. Ces modifications prennent effet immédiatement sans redémarrer le service, ce qui est idéal pour ajuster la configuration de limitation de débit ou affiner les paramètres du modèle.
Présentation
Les paramètres dynamiques permettent une configuration au moment de l'exécution dans EAS. Vous pouvez ainsi modifier les paramètres pendant qu'un service est en cours d'exécution. Ces modifications prennent effet immédiatement sans nécessiter de redémarrage du service.
Différence par rapport aux variables d'environnement :
Variable d'environnement : Injectée au démarrage du service. Les modifications nécessitent un redémarrage du service pour prendre effet.
Paramètre dynamique : Modifiable au moment de l'exécution. Les modifications prennent effet immédiatement sans redémarrage du service.
Principaux avantages :
Les modifications de configuration prennent effet en temps réel et sont synchronisées sur toutes les instances de conteneur.
La disponibilité du service n'est pas affectée, ce qui évite les interruptions dues aux redémarrages.
Idéal pour les paramètres fréquemment ajustés, tels que les seuils de limitation de débit et les paramètres de modèle.
Cas d'utilisation
Les paramètres dynamiques conviennent aux scénarios suivants :
Ajustement dynamique de la configuration de limitation de débit : Ajustez en temps réel les paramètres de limitation de débit, tels que
rate_limit, en fonction du trafic métier.Modification en temps réel des paramètres d'inférence du modèle : Ajustez les paramètres du modèle, tels que
temperature,top_petmax_tokens.Ajustement des niveaux de journalisation : Ajustez temporairement le niveau de sortie des journaux pour le dépannage.
Contrôle des indicateurs de fonctionnalité pour les déploiements canari : Utilisez des paramètres dynamiques pour activer ou désactiver de nouvelles fonctionnalités.
Configuration de tests A/B : Basculez rapidement entre différentes configurations pour comparer leurs performances.
Prérequis
Pour utiliser des paramètres dynamiques, activez la configuration dynamique dans la configuration de votre service. Ajoutez le champ features au niveau supérieur du code JSON de configuration du service :
{
"name": "your-service-name",
...other configurations,
"features": {
"eas.aliyun.com/enable-properties": "true"
}
}
Exception : Si votre service utilise le routage intelligent basé sur LLM, la configuration dynamique est activée par défaut. Aucune configuration manuelle n'est requise.
Procédure
Étape 1 : Configurer des paramètres dynamiques
Vous pouvez mettre à jour les paramètres dynamiques de deux manières :
Mise à jour dans la section Paramètres dynamiques (recommandée) : Modifiez les paramètres dans la section Dynamic Parameters de la page Overview du service. Les modifications prennent effet en temps réel sans déclencher de redémarrage du service.
Mise à jour de la configuration du service (non recommandée) : Modifiez directement le champ
propertiesdans le code JSON de configuration du service. Cette méthode déclenche une mise à jour du service.
Les étapes suivantes décrivent la méthode recommandée :
Dans l'onglet Inference Service, cliquez sur le nom du service cible pour ouvrir sa page Overview.
-
Dans la section Environment Information, ajoutez ou modifiez les paramètres dans Dynamic Parameters. Vous pouvez ajouter des paramètres de l'une des façons suivantes :
Table View : Ajoutez les noms et les valeurs des paramètres ligne par ligne.
JSON View : Ajoutez des paramètres en masse au format JSON.
Cliquez sur Submit pour enregistrer la configuration.
Étape 2 : Vérifier la configuration
Après avoir enregistré la configuration, le système synchronise rapidement les paramètres vers le fichier de configuration sur chaque instance de conteneur.
Le chemin d'accès au fichier de configuration est /eas/workspace/properties/service.json.
Dans le code de votre application, lisez ce fichier de configuration pour utiliser les paramètres dynamiques.
Exemple d'utilisation
L'exemple suivant montre comment configurer les paramètres de limitation de débit, puis les lire dans le code de votre application.
Configurez les paramètres de limitation de débit :
{
"properties": {
"rate_limit": 100,
"max_concurrent_requests": 50,
"timeout_seconds": 30
}
}
Lisez les paramètres dynamiques dans une application (Python) :
import json
# Load dynamic parameters.
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 {}
# Use the dynamic parameters.
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
Q : Quand les modifications de paramètres prennent-elles effet ?
Après avoir modifié un paramètre dynamique, la modification est rapidement synchronisée vers le fichier de configuration sur chaque instance de conteneur. Toutefois, votre application doit implémenter un mécanisme de rechargement à chaud de la configuration, tel que la surveillance de fichiers ou l'interrogation planifiée, pour appliquer la dernière configuration.
Q : Comment implémenter le rechargement à chaud de la configuration ?
Nous recommandons les méthodes suivantes pour implémenter le rechargement à chaud de la configuration :
Surveillance de fichiers : Utilisez un observateur du système de fichiers, tel que la bibliothèque watchdog de Python, pour surveiller les modifications du fichier de configuration et recharger automatiquement la configuration lorsqu'elle est mise à jour.
Interrogation planifiée : Lisez périodiquement le fichier de configuration, par exemple toutes les 5 secondes. Vérifiez si le contenu a changé et mettez à jour la configuration en mémoire en conséquence.
Q : Puis-je utiliser des paramètres dynamiques pour les secrets ?
Nous vous recommandons vivement de ne pas utiliser de paramètres dynamiques pour stocker des informations sensibles. Les secrets, tels que les clés API et les mots de passe de base de données, doivent être gérés à l'aide de variables d'environnement ou d'un service dédié de gestion des secrets, tel que Alibaba Cloud KMS, pour une sécurité renforcée.