dokumentacja AWS nie jest jasne, co się stanie, gdy nastąpi przekroczenie limitu czasu. Myślę jednak, że można śmiało powiedzieć, że przechodzi on w fazę „Zamknięcia”, w której to momencie kontener środowiska uruchomieniowego zostaje przymusowo zakończony przez środowisko.
Oznacza to, że połączenie gniazda używane przez połączenie z bazą danych zostanie zamknięte, a proces Redshift, który nasłuchuje tego gniazda, otrzyma koniec pliku — rozłączenie klienta. Normalnym zachowaniem każdej bazy danych w tej sytuacji jest zakończenie wszelkich zaległych zapytań i wycofanie ich transakcji.
Powodem, dla którego podałem ten opis, jest poinformowanie Cię, że nie możesz wydłuż czas życia zapytania poza czas życia Lambdy, która je inicjuje. Jeśli chcesz pozostać przy użyciu biblioteki połączeń z bazą danych, musisz użyć usługi, która nie przestaje działać:AWS Batch lub ECS to dwie opcje.
Ale jest lepsza opcja:Redshift Data API , który jest obsługiwany przez Boto3 .
Ten interfejs API działa asynchronicznie:przesyłasz zapytanie do Redshift i otrzymujesz token, którego można użyć do sprawdzenia działania zapytania. Możesz również poinstruować Redshift, aby wysłał wiadomość do AWS Eventbridge, gdy zapytanie się zakończy/nie powiedzie się (aby móc utworzyć inną Lambdę, aby podjąć odpowiednie działania).