Detener una sesión en ejecución
La StopRuntimeSession operación permite finalizar inmediatamente las sesiones activas del agente en tiempo de AgentCore ejecución para una limpieza adecuada de los recursos y una gestión del ciclo de vida de las sesiones adecuadas.
Cuando se invoca, esta operación finaliza instantáneamente la sesión especificada y detiene cualquier respuesta de streaming en curso. Esto permite que los recursos del sistema se liberen correctamente y evita la acumulación de sesiones huérfanas.
Úselo StopRuntimeSession en los siguientes escenarios:
-
User-initiated Final: cuando los usuarios concluyen su conversación de forma explícita
-
Cierre de la aplicación: limpieza proactiva antes del cierre de la aplicación
-
Gestión de errores: forzar la finalización de sesiones que no responden o están estancadas
-
Administración de cuotas: manténgase dentro de los límites de las sesiones cerrando las sesiones no utilizadas
-
Gestión del tiempo de espera: limpie las sesiones que superen la duración prevista
Requisitos previos
Para usarlo StopRuntimeSession, necesitas:
-
Permiso de IAM
bedrock-agentcore:StopRuntimeSession -
Un ARN de tiempo de AgentCore ejecución de agente válido
-
El ID de una sesión activa que se va a finalizar
ejemplo
Formato de las respuestas
Formato de respuesta esperado para que las operaciones se realicen correctamenteStopRuntimeSession.
{ "ResponseMetadata": { "RequestId": "12345678-1234-1234-1234-123456789012", "HTTPStatusCode": 200 } }
Gestión de errores
Respuestas de error comunes:
| Código de estado | Error | Description (Descripción) |
|---|---|---|
|
404 |
ResourceNotFoundException |
No se ha encontrado la sesión o ya ha finalizado |
|
403 |
AccessDeniedException |
Permisos insuficientes |
|
400 |
ValidationException |
Parámetros no válidos |
|
500 |
InternalServerException |
Error de servicio |
Prácticas recomendadas
Administración del ciclo de vida de las
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)
Recomendaciones
-
Gestione siempre las excepciones al detener las sesiones
-
Realice un seguimiento de las sesiones activas en su aplicación para su limpieza
-
Establezca tiempos de espera para las solicitudes de suspensión para evitar que se bloqueen
-
Registre las terminaciones de las sesiones para la depuración y la supervisión
-
Utilice administradores de sesiones para aplicaciones complejas con varias sesiones