dokumentace AWS není explicitní o tom, co se stane, když vyprší časový limit. Myslím si však, že lze s jistotou říci, že přechází do fáze „Vypnutí“, kdy je běhový kontejner prostředím násilně ukončen.
To znamená, že připojení soketu používané připojením k databázi bude uzavřeno a proces Redshift, který tomuto soketu naslouchá, obdrží konec souboru – odpojení klienta. Normálním chováním jakékoli databáze v této situaci je ukončit všechny nevyřízené dotazy a vrátit zpět jejich transakce.
Důvod, proč jsem uvedl tento popis, je sdělit vám, že nemůžete prodloužit životnost dotazu nad rámec životnosti Lambda, která tento dotaz iniciuje. Pokud chcete zůstat u používání knihovny připojení k databázi, budete muset použít službu, která nevyprší:AWS Batch nebo ECS jsou dvě možnosti.
Existuje však lepší možnost:Redshift Data API , který je podporován Boto3 .
Toto rozhraní API funguje asynchronně:odešlete dotaz do Redshift a získáte token, který lze použít ke kontrole fungování dotazu. Můžete také dát pokyn Redshift, aby po dokončení/selhání dotazu odeslal zprávu AWS Eventbridge (takže můžete vytvořit další Lambda, abyste provedli příslušnou akci).