PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да накарам командата за копиране да продължи изпълнението си в червено отместване, дори след като ламбда функцията, която я е инициирала, е изтекла?

Документацията на AWS не е изрично какво се случва, когато настъпи таймаут. Но мисля, че е безопасно да се каже, че той преминава във фазата на „Изключване“, в който момент контейнерът за изпълнение е принудително прекратен от средата.

Това означава, че връзката на сокета, използвана от връзката с базата данни, ще бъде затворена и процесът Redshift, който слуша този сокет, ще получи край на файла - прекъсване на връзката на клиента. Нормалното поведение на всяка база данни в тази ситуация е да прекрати всички неуредени заявки и да върне назад техните транзакции.

Причината, поради която дадох това описание, е да ви уведомя, че не можете удължете живота на заявка отвъд живота на Lambda, която инициира тази заявка. Ако искате да продължите да използвате библиотека за свързване към база данни, ще трябва да използвате услуга, която няма изчакване:AWS Batch или ECS са две опции.

Но има по-добър вариант:API на Redshift Data , който е поддържан от Boto3 .

Този API работи асинхронно:изпращате заявка до Redshift и получавате токен, който може да се използва за проверка на операцията на заявката. Можете също така да инструктирате Redshift да изпрати съобщение до AWS Eventbridge, когато заявката бъде завършена/неуспешна (така че можете да създадете друга Lambda, за да предприемете подходящо действие).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. org.postgresql.util.PSQLException:Опитът за свързване е неуспешен

  2. ФАТАЛНО:удостоверяването на паролата не бе успешно за потребител postgres (postgresql 11 с pgAdmin 4)

  3. Как мога да кажа на PostgreSQL да не прекъсва цялата транзакция, когато едно ограничение е неуспешно?

  4. Нулирайте първичния ключ на PostgreSQL на 1

  5. Как да използвате курсори от страна на сървъра с psycopg2