Может ли R работать с AWS S3 в функции AWS Lambda? - PullRequest
1 голос
/ 04 июля 2019

Я ищу подход для запуска алгоритма моделирования, разработанного в R в AWS. Вход для модели R будет поступать с S3, а выход должен быть записан обратно на S3. Группа исследователей данных в моей организации состоит из экспертов R, и моя организация определила AWS как облачную платформу предприятия. Учитывая это, мне нужно найти способ запустить R-имитационную модель в AWS.

Я видел этот блог (https://aws.amazon.com/blogs/compute/analyzing-genomics-data-at-scale-using-r-aws-lambda-and-amazon-api-gateway/), в котором рассказывается об использовании Lambda для запуска кода R в Ptyhon с использованием пакета rpy2. Я планирую следовать тому же подходу. Я планировал реализовать функцию Lambda, как показано ниже -

1) Чтение входных файлов с S3 для записи в локальное лямбда-хранилище (/ tmp). Это будет сделано с помощью Python boto3 SDK.

2) Вызвать алгоритм R, используя rpy2. Я планирую сохранить алгоритм R как файл .RDS в S3 и загрузить его с помощью rpy2, а затем запустить алгоритм R. Алгоритм R записывает вывод обратно в локальное лямбда-хранилище.

3) Записать вывод из лямбда-хранилища в S3. Опять же, это будет сделано с использованием Python boto3 SDK.

Как видите, Python используется для взаимодействия с S3 и переноса файлов в локальное лямбда-хранилище. R будет читать из локального лямбда-хранилища и запускать алгоритм моделирования. Весь код R будет заключен в rpy2 в лямбда-функции. Я планировал таким образом, потому что я не был уверен, может ли R работать с S3 напрямую.

Теперь я понимаю, что локальное хранилище Lambda ограничено 500 МБ, и я сомневаюсь, что входные и выходные файлы останутся в этом пределах. Сейчас я пытаюсь понять, может ли R работать напрямую с S3 в Lambda. Если это возможно, мне не нужно приносить файлы в локальное лямбда-хранилище и, следовательно, не останется свободного места. Опять же, взаимодействие R - S3 нужно будет обернуть внутри rpy2. Есть ли способ добиться этого? Может ли библиотека R Cloudyr работать в этом сценарии? Хотя я вижу примеры взаимодействия Cloudyr с S3, но я не вижу примеров такого использования в Lambda с использованием rpy2.

Есть мысли, пожалуйста?

...