Есть ли служба AWS для запуска скриптов против API & сохранение полученных данных

A.Ali спросил: 10 мая 2018 в 04:05 в: amazon-web-services

Я работаю в среде AWS, и мне нужно сделать следующее [EDIT] как ежедневную запланированную задачу [/ EDIT]:

  1. Запустить python / http-скрипты для вызова внешнего (вне AWS) API несколько раз.
  2. Сохранить вывод каждого вызова в CSV
  3. Дамп нескольких CSV-файлов в базу данных Redshift.

Я посмотрел на AWS-клей, но я не думаю, что могу сделать первый шаг в этом. Какой рабочий процесс или комбинация инструментов вы бы предложили?


2 ответа

Есть решение
rvd ответил: 10 мая 2018 в 04:09
  1. Используйте EC2 для доступа к API и хранения CSV.
  2. Используйте библиотеку boto3, чтобы загрузить их на S3
  3. Используйте COPY для загрузки данных из S3 в Redshift (безусловно, самый быстрый способ)
A.Ali ответил: 10 мая 2018 в 04:17
Спасибо за ответ. Я забыл упомянуть, что я хочу, чтобы это выполнялось как ежедневное задание ... Не нужно ли начинать / останавливать экземпляр каждый день?
rvd ответил: 10 мая 2018 в 04:23
Также я должен упомянуть, что вам не нужно использовать boto3 - это просто API-интерфейс Python AWS - есть много других. Но общая логика по-прежнему остается одной и той же. Я использую boto3 для EC2 - > S3 - > Ежедневная загрузка красного смены.
rvd ответил: 10 мая 2018 в 04:20
Нет. Вы можете использовать cron или supervisor, чтобы запланировать загрузку API и скрипт вызова boto как ежедневную работу, и он будет запускаться каждый день автоматически без какого-либо вмешательства ,
A.Ali ответил: 10 мая 2018 в 04:33
Я вижу, но cron и supervisor будут на экземпляре EC2 ... или моем ноутбуке. Есть ли способ использовать пакет AWS или некоторый сервис на основе AWS для запуска / остановки сценариев. Я хочу настроить его как можно более автоматизированную и полностью в рамках экосистемы AWS. Извините, новичок AWS здесь!
A.Ali ответил: 28 мая 2018 в 02:17
Спасибо за ответ. Имея RTFMed, я понимаю, что это лучшее решение для меня.
Ashan ответил: 10 мая 2018 в 06:01

Вы можете написать функцию Lambda с запланированными событиями для обхода API.

Использование Lambda, скорее всего, будет дешевле по сравнению с предоставлением экземпляра EC2, поскольку ваша работа не занимает много времени, а количество данных меньше .

Если вы надеетесь использовать экземпляр EC2, вы можете использовать событие планирования Lambda для запуска и остановки экземпляра EC2 (или сам экземпляр EC2 может завершить работу после выполнения задания).

Дополнительное видео по вопросу: Есть ли служба AWS для запуска скриптов против API & сохранение полученных данных

Amazon Web Services (2/2). API (aws-sdk Node.js). Загрузка файлов, сброс кэша CDN

Использование Amazon Web Services для разработчиков [GeekBrains]

Getting Started with AWS | Amazon Web Services BASICS