Dokumentasi AWS tidak eksplisit tentang apa yang terjadi ketika batas waktu terjadi. Tapi saya rasa aman untuk mengatakan bahwa transisi ke fase "Shutdown", di mana runtime container dihentikan secara paksa oleh lingkungan.
Artinya, koneksi soket yang digunakan oleh koneksi basis data akan ditutup, dan proses Redshift yang mendengarkan soket tersebut akan menerima file akhir -- pemutusan klien. Perilaku normal dari basis data apa pun dalam situasi ini adalah menghentikan kueri yang belum diselesaikan dan mengembalikan transaksinya.
Alasan saya memberikan deskripsi itu adalah untuk memberi tahu Anda bahwa Anda tidak bisa memperpanjang umur kueri di luar masa pakai Lambda yang memulai kueri itu. Jika Anda ingin tetap menggunakan perpustakaan koneksi database, Anda harus menggunakan layanan yang tidak memiliki batas waktu:AWS Batch atau ECS adalah dua opsi.
Namun, ada opsi yang lebih baik:API Data Redshift , yang didukung oleh Boto3 .
API ini beroperasi secara asinkron:Anda mengirimkan kueri ke Redshift, dan mendapatkan token yang dapat digunakan untuk memeriksa operasi kueri. Anda juga dapat menginstruksikan Redshift untuk mengirim pesan ke AWS Eventbridge saat kueri selesai/gagal (sehingga Anda dapat membuat Lambda lain untuk mengambil tindakan yang sesuai).