Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menghentikan sesi yang sedang 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
-
Shutdown aplikasi: Pembersihan proaktif sebelum penghentian aplikasi
-
Penanganan kesalahan: Memaksa penghentian sesi yang tidak responsif atau terhenti
-
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 diakhiri
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 |
|
409 |
RetryableConflictException |
Operasi sesi sedang berlangsung, silakan coba lagi |
|
500 |
InternalServerException |
Kesalahan Layanan |
Layanan kembali RetryableConflictException (HTTP 409) ketika StopRuntimeSession panggilan Anda tiba saat layanan masih menyediakan atau menghancurkan sesi. Kondisi ini bersifat sementara dan dapat dicoba kembali. Coba lagi dengan mundur eksponensial pendek alih-alih memperlakukannya sebagai kegagalan terminal. SDK AWS mencoba ulang pengecualian ini secara otomatis saat percobaan ulang default diaktifkan. Jika Anda menonaktifkan percobaan ulang atau memanggil API secara langsung tanpa AWS SDK (misalnya, permintaan HTTPS yang ditampilkan sebelumnya), coba lagi sendiri.
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 tangani pengecualian saat menghentikan sesi
-
Melacak sesi aktif di aplikasi Anda untuk pembersihan
-
Tetapkan batas waktu untuk permintaan berhenti untuk menghindari hang
-
Pengakhiran sesi log untuk debugging dan pemantauan
-
Gunakan manajer sesi untuk aplikasi kompleks dengan beberapa sesi