Архитектура для AWS лямбда-скребка - PullRequest
0 голосов
/ 16 апреля 2020

Я, наверное, уже слишком много размышляю над этим и хотел бы получить некоторую информацию о том, как лучше спроектировать веб-скребок в среде без сервера

Над чем я работаю, это простой форумный скребок, который предоставляет пользователям статистику того, как их сообщения нравятся, количество слов на подфоруме и т. д. c.

Моя идея состояла в том, что мой:

  1. Stati c веб-сайт отправляет идентификатор пользователя для функции лямбда-менеджера
  2. Менеджер проверяет, был ли этот пользователь ранее удален в RDS, и вычисляет дельту в случае, если
  3. Менеджер возвращает идентификатор задания, создает, добавляет URL-адреса для очистки в очереди
  4. Скреперы запускаются элементами в очереди, обрабатывающими сообщения.
  5. Stati c веб-сайт запрашивает у менеджера статус для задания
  6. <<< how теперь менеджер знает, завершено ли задание (я не могу отфильтровать SQS, это противоречит его назначению, а задания скребка работают независимо и параллельно, поэтому они также не знают, если определенный URL-адрес был последним URL-адресом для этого задания. </li>
  7. По запросу Manager распознает задание выполненным, сохраняет сгенерированные данные в виде файла CSV на s3
  8. Веб-сайт stati c извлекает сгенерированный CSV файл и процессы далее

Какая архитектура будет правильной, чтобы избежать загадки в пункте 6? Я подумал, что вместо этого будет использовать RDS для сохранения URL-адресов с идентификатором задания и статусом разбора, и если все URL-адреса этой работы будут иметь правильный статус, я буду знать, как на это реагировать, но у меня будет чувство, что я слишком сильно этим занимаюсь?

...