Может ли действие жизненного цикла S3 иметь предварительные условия?

У меня есть активность конвейера данных AWS, которая ежедневно читает 2 файла данных, которые поступают во входящее ведро из внешней системы. Конвейер данных импортирует эти данные в базу данных. После завершения обработки конвейера данных я хочу автоматически переместить эти 2 файла в заархивированное хранилище, но это должно произойти, только если конвейер данных успешно завершен. Могу ли я сделать это перемещение файла на основе такого предварительного условия? И как я могу запланировать движение S3?

2 ответа

Вы можете записать файл в промежуточный сегмент S3, когда выполнение конвейера данных завершится успешно. И настройте лямбда-функцию для запуска на основе события промежуточного сегмента, который может копировать файлы из исходного в целевой сегмент. Но вам нужно посмотреть, могут ли лямбда-выполнения обрабатывать ваши размеры файлов и время обработки. Если вы столкнетесь с ограничениями, подумайте о вариантах использования SQS или SNS. Клиент может быть написан для обработки сообщений SQS или иметь конечную точку, где могут быть получены уведомления SNS. Получив сообщение, клиент может скопировать файлы из источника в корзину.

Вы можете создать зависимое действие для операции импорта в базу данных, которая выполняет копирование. Убедитесь, что для зависимого действия установлен каскадный сбой, поэтому он потерпит неудачу при сбое импорта.

http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-manage-cascade-failandrerun.html

Другие вопросы по тегам