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á.
Interromper uma sessão em execução
A StopRuntimeSession operação permite que você encerre imediatamente as sessões ativas do agente AgentCore Runtime para a limpeza adequada dos recursos e o gerenciamento do ciclo de vida da sessão.
Quando chamada, essa operação encerra instantaneamente a sessão especificada e interrompe todas as respostas de streaming em andamento. Isso permite que os recursos do sistema sejam liberados adequadamente e evita o acúmulo de sessões órfãs.
Use StopRuntimeSession nesses cenários:
-
User-initiated fim: quando os usuários concluem explicitamente a conversa
-
Desligamento do aplicativo: limpeza proativa antes do encerramento do aplicativo
-
Tratamento de erros: forçar o encerramento de sessões que não respondem ou estão paralisadas
-
Gerenciamento de cotas: permaneça dentro dos limites da sessão fechando sessões não utilizadas
-
Tratamento do tempo limite: limpe as sessões que excedem a duração esperada
Pré-requisitos
Para usar StopRuntimeSession, você precisa:
-
Permissão
bedrock-agentcore:StopRuntimeSessiondo IAM -
Um agente válido: AgentCore Runtime ARN
-
O ID de uma sessão ativa a ser encerrada
exemplo
Formato de resposta
Formato de resposta esperado para StopRuntimeSession operações bem-sucedidas.
{ "ResponseMetadata": { "RequestId": "12345678-1234-1234-1234-123456789012", "HTTPStatusCode": 200 } }
Tratamento de erros
Respostas de erro comuns:
| Código de status | Erro | Description |
|---|---|---|
|
404 |
ResourceNotFoundException |
Sessão não encontrada ou já encerrada |
|
403 |
AccessDeniedException |
Permissões insuficientes |
|
400 |
ValidationException |
Parâmetros inválidos |
|
409 |
RetryableConflictException |
Operação da sessão em andamento, tente novamente |
|
500 |
InternalServerException |
Erro de serviço |
O serviço retorna RetryableConflictException (HTTP 409) quando sua StopRuntimeSession chamada chega enquanto o serviço ainda está provisionando ou desativando a sessão. Essa condição é transitória e pode ser repetida. Tente novamente com um pequeno recuo exponencial em vez de tratá-lo como uma falha terminal. Os AWS SDKs repetem automaticamente essa exceção quando as novas tentativas padrão estão habilitadas. Se você desativou as novas tentativas ou chamou a API diretamente sem um AWS SDK (por exemplo, a solicitação HTTPS mostrada anteriormente), tente novamente você mesmo.
Práticas recomendadas
Gerenciamento do ciclo de vida da sessão
class SessionManager: def __init__(self, client, agent_arn): self.client = client self.agent_arn = agent_arn self.active_sessions = set() def invoke_agent(self, session_id, payload): """Invoke agent and track session""" try: response = self.client.invoke_agent_runtime( agentRuntimeArn=self.agent_arn, runtimeSessionId=session_id, payload=payload ) self.active_sessions.add(session_id) return response except Exception as e: print(f"Failed to invoke agent: {e}") raise def stop_session(self, session_id): """Stop session and remove from tracking""" try: self.client.stop_runtime_session( agentRuntimeArn=self.agent_arn, runtimeSessionId=session_id, qualifier=endpoint_name ) self.active_sessions.discard(session_id) print(f"Session {session_id} stopped") except Exception as e: print(f"Failed to stop session {session_id}: {e}") def cleanup_all_sessions(self): """Stop all tracked sessions""" for session_id in list(self.active_sessions): self.stop_session(session_id)
Recomendações
-
Sempre manipule exceções ao interromper as sessões
-
Acompanhe as sessões ativas em seu aplicativo para limpeza
-
Defina tempos limite para solicitações de interrupção para evitar interrupções
-
Registrar terminações de sessão para depuração e monitoramento
-
Use gerenciadores de sessão para aplicativos complexos com várias sessões