As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Defina as configurações do ciclo de AgentCore vida do Amazon Bedrock
O parâmetro LifecycleConfiguration de entrada CreateAgentRuntime permite gerenciar o ciclo de vida de sessões e recursos de tempo de execução no Amazon Bedrock AgentCore Runtime. Essa configuração ajuda a otimizar a utilização de recursos limpando automaticamente as sessões ociosas e impedindo que instâncias de longa execução consumam recursos indefinidamente.
Você também pode definir as configurações do ciclo de vida de um AgentCore Runtime existente com a UpdateAgentRuntime operação.
Tópicos
Atributos de configuração
| Atributo | Tipo | Alcance (segundos) | Obrigatório | Description |
|---|---|---|---|---|
|
|
Inteiro |
60—28800 (microVMs) 60—1209600 (Instâncias) |
Não |
Tempo limite em segundos para sessões de tempo de execução ociosas. Quando uma sessão permanece inativa por esse período, ela aciona o encerramento. A rescisão pode durar até 15 segundos devido ao registro e à conclusão de outros processos. Padrão: 900 segundos (15 minutos) |
|
|
Inteiro |
60—28800 (microVMs) 60—1209600 (Instâncias) |
Não |
Vida útil máxima da instância em segundos. Uma vez alcançadas, as instâncias inicializarão o encerramento. A rescisão pode durar até 15 segundos devido ao registro e à conclusão de outros processos. Padrão: 28800 segundos (8 horas). A sessão em si pode persistir além disso com uma nova instância provisionada. |
nota
O valor máximo para ambos os atributos depende do tipo de computação do AgentCore Runtime. Os tempos de execução que usam microVMs aceitam até 28.800 segundos (8 horas). Os tempos de execução que usam um provedor de capacidade (instâncias) aceitam até 1209.600 segundos (14 dias). Se você especificar um valor acima do máximo para seu tipo de computação, a solicitação falhará com a. ValidationException Para obter mais informações, consulte Instâncias do .
Restrições
-
idleRuntimeSessionTimeoutdeve ser menor ou igual amaxLifetime -
Ambos os valores são medidos em segundos
-
Intervalo válido para tempos de execução que usam microVMs: 60 a 28.800 segundos (até 8 horas)
-
Intervalo válido para tempos de execução que usam um provedor de capacidade (instâncias): 60 a 1209.600 segundos (até 14 dias)
-
Para um tempo de execução que usa um provedor de capacidade, também
maxLifetimedeve ser menor ou igual aomaxLifetimedefinido pelo provedor de capacidade em seuInstanceLifecycleConfiguration
Comportamento padrão do
Quando não LifecycleConfiguration é fornecido ou contém valores nulos, a plataforma aplica a seguinte lógica:
| Contribuição do cliente | ocioso RuntimeSessionTimeout | Vida útil máxima | Resultado |
|---|---|---|---|
|
Sem configuração |
900 seg |
2800s |
Usa padrões: 900s e 28800s |
|
Somente MaxLifetime é fornecido |
900 seg |
Valor para o cliente |
Se MaxLifetime ≤ 900s: usa MaxLifetime para ambos Se MaxLifetime > 900s: usa 900s para inatividade, valor do cliente para máximo |
|
Somente idleTimeout fornecido |
Valor para o cliente |
2800s |
Usa o valor do cliente para inatividade, 28800s para no máximo |
|
Ambos os valores fornecidos |
Valor para o cliente |
Valor para o cliente |
Usa os valores do cliente como estão |
Valores padrão de
-
idleRuntimeSessionTimeout: 900 segundos (15 minutos) -
maxLifetime: 28800 segundos (8 horas)
Crie um AgentCore tempo de execução com a configuração do ciclo de vida
Você pode especificar uma configuração de ciclo de vida ao criar um AgentCore Runtime.
import boto3 client = boto3.client('bedrock-agentcore-control', region_name='us-west-2') try: response = client.create_agent_runtime( agentRuntimeName='my_agent_runtime', agentRuntimeArtifact={ 'containerConfiguration': { 'containerUri': '123456789012.dkr.ecr.us-west-2.amazonaws.com/my-agent:latest' } }, lifecycleConfiguration={ 'idleRuntimeSessionTimeout': 1800, # 30 minutes, configurable 'maxLifetime': 14400 # 4 hours }, networkConfiguration={'networkMode': 'PUBLIC'}, roleArn='arn:aws:iam::123456789012:role/AgentRuntimeRole' ) print(f"Agent runtime created: {response['agentRuntimeArn']}") except client.exceptions.ValidationException as e: print(f"Validation error: {e}") except Exception as e: print(f"Error creating agent runtime: {e}")
Atualizar a configuração do ciclo de vida de um Runtime AgentCore
Você pode atualizar a configuração do ciclo de vida de um Runtime existente AgentCore .
import boto3 client = boto3.client('bedrock-agentcore-control', region_name='us-west-2') agent_runtime_id = 'my_agent_runtime' try: response = client.update_agent_runtime( agentRuntimeId=agent_runtime_id, agentRuntimeArtifact={ 'containerConfiguration': { 'containerUri': '123456789012.dkr.ecr.us-west-2.amazonaws.com/my-agent:latest' } }, networkConfiguration={'networkMode': 'PUBLIC'}, roleArn='arn:aws:iam::123456789012:role/AgentRuntimeRole', lifecycleConfiguration={ 'idleRuntimeSessionTimeout': 600, # 10 minutes 'maxLifetime': 7200 # 2 hours } ) print("Lifecycle configuration updated successfully") except client.exceptions.ValidationException as e: print(f"Validation error: {e}") except client.exceptions.ResourceNotFoundException: print("Agent runtime not found") except Exception as e: print(f"Error updating configuration: {e}")
Obtenha a configuração do ciclo de vida para um Runtime AgentCore
Você pode obter a configuração do ciclo de vida de um Runtime existente AgentCore .
import boto3 client = boto3.client('bedrock-agentcore-control', region_name='us-west-2') def get_lifecycle_config(): try: response = client.get_agent_runtime(agentRuntimeId="my_agent_runtime") lifecycle_config = response.get('lifecycleConfiguration', {}) idle_timeout = lifecycle_config.get('idleRuntimeSessionTimeout', 900) max_lifetime = lifecycle_config.get('maxLifetime', 28800) print(f"Current configuration:") print(f" Idle timeout: {idle_timeout}s ({idle_timeout//60} minutes)") print(f" Max lifetime: {max_lifetime}s ({max_lifetime//3600} hours)") return lifecycle_config except Exception as e: print(f"Error retrieving configuration: {e}") return None # Usage config = get_lifecycle_config() print(config)
Validação e restrições
A configuração do ciclo de vida inclui regras de validação e restrições para evitar configurações inválidas. Se sua solicitação violar alguma das regras a seguir, ela falhará com umValidationException:
-
Qualquer valor está abaixo de 60 segundos ou acima do máximo para o tipo de computação do tempo de execução (28.800 segundos para microVMs, 1209.600 segundos para instâncias).
-
idleRuntimeSessionTimeouté maior do quemaxLifetime. -
Para um tempo de execução que usa um provedor de capacidade,
maxLifetimeé maior domaxLifetimeque o que o provedor de capacidade define em seuInstanceLifecycleConfiguration. Para executar sessões por mais tempo do que o permitido pelo provedor de capacidade,maxLifetimeprimeiro aumente a do provedor de capacidade.
Erros comuns de validação
import boto3 client = boto3.client('bedrock-agentcore-control', region_name='us-west-2') try: client.create_agent_runtime( agentRuntimeName='invalid_config_agent', agentRuntimeArtifact={ 'containerConfiguration': { 'containerUri': '123456789012.dkr.ecr.us-west-2.amazonaws.com/my-agent:latest' } }, lifecycleConfiguration={ 'idleRuntimeSessionTimeout': 3600, # 1 hour, configurable 'maxLifetime': 1800 # 30 minutes - INVALID! }, networkConfiguration={'networkMode': 'PUBLIC'}, roleArn='arn:aws:iam::123456789012:role/AgentRuntimeRole', ) except client.exceptions.ValidationException as e: print(f"Validation failed: {e}") # Output: idleRuntimeSessionTimeout must be less than or equal to maxLifetime
Função auxiliar de validação
MICROVM_MAX_SECONDS = 28800 # 8 hours INSTANCES_MAX_SECONDS = 1209600 # 14 days MIN_SECONDS = 60 def validate_lifecycle_config(idle_timeout, max_lifetime, uses_capacity_provider=False): """Validate lifecycle configuration before API call""" errors = [] # The maximum depends on the compute type of the runtime maximum = INSTANCES_MAX_SECONDS if uses_capacity_provider else MICROVM_MAX_SECONDS # Check range constraints if not (MIN_SECONDS <= idle_timeout <= maximum): errors.append(f"idleRuntimeSessionTimeout must be between {MIN_SECONDS} and {maximum} seconds") if not (MIN_SECONDS <= max_lifetime <= maximum): errors.append(f"maxLifetime must be between {MIN_SECONDS} and {maximum} seconds") # Check relationship constraint if idle_timeout > max_lifetime: errors.append(f"idleRuntimeSessionTimeout ({idle_timeout}s) must be <= maxLifetime ({max_lifetime}s)") return errors # Usage errors = validate_lifecycle_config(3600, 1800) if errors: for error in errors: print(f"Validation error: {error}") else: print("Configuration is valid")
Configurações do ciclo de vida e sessões de tempo de execução
As definições de configuração do ciclo de vida que você define são aplicadas a cada sessão individual de tempo de execução. Quando você invoca um agente com um agente específicoruntimeSessionId, o AgentCore Runtime provisiona uma microVM dedicada para essa sessão. Os tempos limite do ciclo de vida (idleRuntimeSessionTimeoutemaxLifetime) governam o ciclo de vida dessa instância específica de microVM.
import boto3 import json import uuid client = boto3.client('bedrock-agentcore', region_name='us-west-2') # Each unique runtimeSessionId gets its own microVM with lifecycle settings applied session_id_user_1 = str(uuid.uuid4()) # User 1's session session_id_user_2 = str(uuid.uuid4()) # User 2's session # First invocation for User 1 - creates new microVM with lifecycle timers response1 = client.invoke_agent_runtime( agentRuntimeArn='arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/my-agent', runtimeSessionId=session_id_user_1, # Dedicated microVM for this session payload=json.dumps({"prompt": "Hello from User 1"}).encode() ) # First invocation for User 2 - creates separate microVM with its own lifecycle timers response2 = client.invoke_agent_runtime( agentRuntimeArn='arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/my-agent', runtimeSessionId=session_id_user_2, # Different microVM for this session payload=json.dumps({"prompt": "Hello from User 2"}).encode() ) # Subsequent invocations to same session reuse the existing microVM # The idle timeout resets with each invocation to the same session response3 = client.invoke_agent_runtime( agentRuntimeArn='arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/my-agent', runtimeSessionId=session_id_user_1, # Reuses User 1's existing microVM payload=json.dumps({"prompt": "Follow-up from User 1"}).encode() )
Pontos-chave sobre configurações e sessões do ciclo de vida:
-
Per-session isolamento: cada um
runtimeSessionIdrecebe sua própria microVM com temporizadores de ciclo de vida independentes -
Redefinição do temporizador de inatividade: as
idleRuntimeSessionTimeoutreinicializações sempre que você invoca a mesma sessão -
Aplicação máxima de vida útil: o
maxLifetimecronômetro começa quando a microVM é criada pela primeira vez e não pode ser redefinida -
Encerramento da sessão: quando um tempo limite é atingido, somente a microVM dessa sessão específica é encerrada. A sessão pode ser retomada com uma nova microVM provisionada.
dica
Cada sessão de microVM usa os ativos de código (agentRuntimeArtifact) que foram implantados no momento da criação da microVM. Se você atualizar o tempo de execução do agente com um novo código, as sessões existentes continuarão usando a versão anterior até serem encerradas e novas sessões serem criadas.
Práticas recomendadas
Siga essas práticas recomendadas ao definir as configurações do ciclo de vida para otimizar a utilização dos recursos e a experiência do usuário.
Recomendações
-
Comece com os padrões (900s ocioso, 28800s no máximo) e ajuste com base nos padrões de uso
-
Verifique seu tipo de computação antes de aumentar
maxLifetimepara mais de 8 horas — somente os tempos de execução que usam um provedor de capacidade (Instâncias) aceitam valores maiores -
Monitore a duração da sessão para otimizar os valores de tempo limite
-
Use tempos limite mais curtos para ambientes de desenvolvimento para economizar custos
-
Considere a experiência do usuário - tempos limite muito curtos podem interromper os usuários ativos
-
Teste primeiro as alterações de configuração em ambientes que não são de produção
-
Justificação do tempo limite do documento para seu caso de uso específico
Padrões comuns
| Caso de uso | Intervalo ocioso | Vida útil máxima | Lógica |
|---|---|---|---|
|
Chat interativo |
10-15 minutos |
2-4 horas |
Equilibre a capacidade de resposta com o uso de recursos |
|
Processamento em lote |
30 minutos |
8 horas |
Permita operações de longa duração |
|
Desenvolvimento |
5 minutos |
30 minutos |
Limpeza rápida para otimização de custos |
|
API de produção |
15 minutos |
4 horas |
Carga de trabalho de produção padrão |
|
Demo/Testing |
2 minutos |
15 minutos |
Limpeza agressiva para uso temporário |