O EAS permite configurar parâmetros dinâmicos para um serviço em tempo de execução. Essas alterações entram em vigor imediatamente sem reiniciar o serviço, sendo ideal para ajustar configurações de limitação de taxa ou otimizar parâmetros de modelo.
Visão geral
Os parâmetros dinâmicos habilitam a configuração em tempo de execução no EAS e permitem modificar definições enquanto o serviço está ativo. As alterações são aplicadas instantaneamente, sem necessidade de reinicialização.
Diferença em relação às variáveis de ambiente:
Variável de ambiente: Injetada na inicialização do serviço. Qualquer alteração exige reinicialização para entrar em vigor.
Parâmetro dinâmico: Pode ser modificado durante a execução. As mudanças são aplicadas imediatamente, sem reiniciar o serviço.
Principais vantagens:
As alterações de configuração entram em vigor em tempo real e são sincronizadas em todas as instâncias de contêiner.
A disponibilidade do serviço permanece intacta, evitando interrupções causadas por reinicializações.
Ideal para ajustes frequentes, como limiares de limitação de taxa e parâmetros de modelo.
Casos de uso
Os parâmetros dinâmicos são adequados para os seguintes cenários:
Otimizar dinamicamente a configuração de limitação de taxa: Ajuste parâmetros como
rate_limitem tempo real com base no tráfego do negócio.Modificar parâmetros de inferência de modelo em tempo real: Altere parâmetros do modelo, como
temperature,top_pemax_tokens.Ajustar níveis de log: Modifique temporariamente o nível de saída de log para solução de problemas.
Controlar feature flags para canary releases: Use parâmetros dinâmicos para ativar ou desativar novos recursos.
Configurar testes A/B: Alterne rapidamente entre diferentes configurações para comparar o desempenho.
Pré-requisitos
Para usar parâmetros dinâmicos, ative a configuração dinâmica nas configurações do serviço. Adicione o campo features no nível superior do JSON de configuração do serviço:
{
"name": "your-service-name",
...other configurations,
"features": {
"eas.aliyun.com/enable-properties": "true"
}
}
Exceção: Se o seu serviço utiliza roteamento inteligente baseado em LLM, a configuração dinâmica já vem ativada por padrão. Nenhuma configuração manual é necessária.
Procedimento
Etapa 1: Configurar parâmetros dinâmicos
Atualize os parâmetros dinâmicos de duas formas:
Atualizar na seção Dynamic Parameters (Recomendado): Modifique os parâmetros na seção Dynamic Parameters da página Overview do serviço. As alterações entram em vigor em tempo real sem acionar uma reinicialização.
Atualizar a configuração do serviço (Não recomendado): Modifique diretamente o campo
propertiesno JSON de configuração do serviço. Este método aciona uma atualização do serviço.
Os passos a seguir descrevem o método recomendado:
Na aba Inference Service, clique em nome do serviço desejado para abrir sua página Overview.
-
Na seção Environment Information, adicione ou modifique parâmetros em Dynamic Parameters. Adicione parâmetros de duas maneiras:
Table View: Adicione nomes e valores dos parâmetros linha por linha.
JSON View: Adicione parâmetros em massa no formato JSON.
Clique em Submit para salvar a configuração.
Etapa 2: Verificar a configuração
Após salvar a configuração, o sistema sincroniza rapidamente os parâmetros com o arquivo de configuração em cada instância de contêiner.
O caminho do arquivo de configuração é /eas/workspace/properties/service.json.
No código da sua aplicação, leia esse arquivo de configuração para utilizar os parâmetros dinâmicos.
Exemplo de uso
O exemplo a seguir demonstra como configurar parâmetros de limitação de taxa e lê-los no código da aplicação.
Configurar parâmetros de limitação de taxa:
{
"properties": {
"rate_limit": 100,
"max_concurrent_requests": 50,
"timeout_seconds": 30
}
}
Ler parâmetros dinâmicos em uma aplicação (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}")
Perguntas frequentes
P: Quando as alterações de parâmetros entram em vigor?
Após a modificação de um parâmetro dinâmico, a alteração é rapidamente sincronizada com o arquivo de configuração em cada instância de contêiner. No entanto, sua aplicação deve implementar um mecanismo de recarga dinâmica de configuração, como monitoramento de arquivos ou polling agendado, para aplicar a configuração mais recente.
P: Como implementar a recarga dinâmica de configuração?
Recomendamos os seguintes métodos para implementar a recarga dinâmica de configuração:
Monitoramento de arquivos: Use um observador de sistema de arquivos, como a biblioteca watchdog do Python, para monitorar alterações no arquivo de configuração e recarregá-lo automaticamente quando houver atualizações.
Polling agendado: Leia periodicamente o arquivo de configuração, por exemplo, a cada 5 segundos. Verifique se o conteúdo mudou e atualize a configuração em memória conforme necessário.
P: Posso usar parâmetros dinâmicos para segredos?
Recomendamos fortemente que você não utilize parâmetros dinâmicos para armazenar informações sensíveis. Gerencie segredos, como chaves de API e senhas de banco de dados, por meio de variáveis de ambiente ou de um serviço dedicado ao gerenciamento de segredos, como o Alibaba Cloud KMS, para garantir maior segurança.