Случай 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 МБ), прочитать файл, выполнить некоторые вычисления (например, сложить общее количество некоторых столбцов), а затем сохранить результаты где-нибудь.