Как вызвать атину, запускаемую автоматически лямбдой, когда объекты обновляются в корзине s3? - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть следующие 2 варианта использования, чтобы применить к этому

Вариант 1. Мне нужно было бы вызвать только лямбду, чтобы вызвать athena для выполнения запроса к данным s3?Вопрос: Как вызвать лямбду-одиночку через api?

Случай 2. Мне нужна лямбда-функция для вызова athena всякий раз, когда файл копируется в тот же сегмент s3, который уже сопоставлен с athena?

Iamссылка на следующую ссылку, чтобы сделать то же самое для выполнения лямбда-операции над Афиной

Ссылка: https://dev.classmethod.jp/cloud/run-amazon-athenas-query-with-aws-lambda/

Для случая 2 : Например, необходимо интегрировать следующее:

Файл в s3-1 - это sales.csv - и я бы обновил данные о продажах, скопировав данные из других s3-2.И схема / столбец, определенные в данных s3-1, останутся такими же.поэтому, когда я копирую какой-то файл в те же данные s3, которые были сопоставлены с Афиной, лямбда-функция должна вызывать Афину для выполнения запроса

Оценить, если можно обеспечить лучший способ достижения вышеуказанных случаев?

Спасибо

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Случай 1

AWS Lambda может быть вызван напрямую с помощью команды invoke().Это можно сделать с помощью интерфейса командной строки AWS (CLI) или с помощью языка программирования с использованием AWS SDK.

Случай 2

Для корзины Amazon S3 можно настроить автоматическое включение функции AWS Lambda при загрузке файла.Событие предоставляет имя корзины и имя файла (имя объекта) для функции Lambda.

Функция Lambda может извлечь эти данные из записи event и затем использовать эту информацию в команде Amazon Athena.

Обратите внимание, что если имя файла каждый раз отличается, команда CREATE TABLE потребуется, прежде чем команда SELECT сможет запросить данные.

Общие комментарии

Функция Lambda может работать максимум 15 минут, поэтому убедитесь, что запросы Athena не занимают больше этого времени.Это не особенно эффективное использование лямбда-функции AWS, потому что она будет оплачиваться в течение всего времени вызова функции, даже если она просто ожидает завершения работы Athena.

Другой вариант - использовать лямбдаФункция непосредственно обрабатывает файл, предполагая, что запрос не является особенно сложным.Например, функция Lambda может загрузить файл во временное хранилище (максимум 500 МБ), прочитать файл, выполнить некоторые вычисления (например, сложить общее количество некоторых столбцов), а затем сохранить результаты где-нибудь.

0 голосов
/ 10 февраля 2019

Следующим шагом будет создание конечной точки для вашей лямбды, для этого вы можете использовать aws-apigateway.

С другой стороны, используя консоль amazon или amazon cli, вы можете вызвать лямбдучтобы проверить.

...