Hentikan sesi berjalan
StopRuntimeSessionOperasi ini memungkinkan Anda segera menghentikan sesi AgentCore Runtime agen aktif untuk pembersihan sumber daya yang tepat dan manajemen siklus hidup sesi.
Saat dipanggil, operasi ini langsung mengakhiri sesi yang ditentukan dan menghentikan respons streaming yang sedang berlangsung. Ini memungkinkan sumber daya sistem dilepaskan dengan benar dan mencegah akumulasi sesi yatim piatu.
Gunakan StopRuntimeSession dalam skenario ini:
-
User-initiated akhir: Ketika pengguna secara eksplisit menyimpulkan percakapan mereka
-
Pematian aplikasi: Pembersihan proaktif sebelum penghentian aplikasi
-
Penanganan kesalahan: Paksa penghentian sesi yang tidak responsif atau macet
-
Manajemen kuota: Tetap dalam batas sesi dengan menutup sesi yang tidak digunakan
-
Penanganan batas waktu: Bersihkan sesi yang melebihi durasi yang diharapkan
Prasyarat
Untuk menggunakan StopRuntimeSession, Anda perlu:
-
bedrock-agentcore:StopRuntimeSessionIzin IAM -
Agen AgentCore Runtime ARN yang valid
-
ID sesi aktif untuk mengakhiri
contoh
Format respons
Format respons yang diharapkan untuk StopRuntimeSession operasi yang berhasil.
{ "ResponseMetadata": { "RequestId": "12345678-1234-1234-1234-123456789012", "HTTPStatusCode": 200 } }
Penanganan kesalahan
Tanggapan kesalahan umum:
| Kode Status | Kesalahan | Deskripsi |
|---|---|---|
|
404 |
ResourceNotFoundException |
Sesi tidak ditemukan atau sudah dihentikan |
|
403 |
AccessDeniedException |
Izin tidak cukup |
|
400 |
ValidationException |
Parameter tidak valid |
|
500 |
InternalServerException |
Kesalahan Layanan |
Praktik terbaik
Manajemen siklus hidup sesi
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)
Rekomendasi
-
Selalu menangani pengecualian saat menghentikan sesi
-
Lacak sesi aktif di aplikasi Anda untuk pembersihan
-
Tetapkan batas waktu untuk permintaan berhenti agar tidak menggantung
-
Penghentian sesi log untuk debugging dan pemantauan
-
Gunakan manajer sesi untuk aplikasi kompleks dengan beberapa sesi