В предыдущем посте Мы рассмотрели использование AWS Lambda console. Здесь мы обсудим фактическую реализацию лямбда-функции для нашего варианта использования, то есть создание миниатюр из видео, хранящихся в S3. Репозиторий проекта можно найти здесь для справки .
Вы используете пакет развертывания для развертывания кода вашей функции в Lambda. Lambda поддерживает два типа пакетов развертывания: образы контейнеров и zip-файлы или jar-файлы.
Lambda предоставляет следующие библиотеки для функций Java:
com.amazonaws:aws-lambda-java-core (обязательно) – Определяет интерфейсы методов обработчика и объект контекста, который среда выполнения передает обработчику. Если вы определяете свои собственные типы ввода, это единственная библиотека, которая вам нужна.
com.amazonaws:aws-лямбда-java-события – Типы входных данных для событий из служб, которые вызывают лямбда-функции.
com.amazonaws:aws-lambda-java-log4j2 – Библиотека приложений для Apache Log4j 2, которую вы можете использовать для добавления идентификатора запроса для текущего вызова в журналы ваших функций.
Ниже приведены зависимости Maven для этих библиотек с последними версиями на момент написания этого поста. Добавьте их в pom-файл проекта Maven.
com.amazonaws aws-lambda-java-core 1.2.1 com.amazonaws aws-lambda-java-events 3.1.0 com.amazonaws aws-lambda-java-log4j2 1.2.0
Создание пакета развертывания с помощью Maven
Чтобы создать пакет развертывания с помощью Maven, используйте плагин Maven Shade. Плагин создает файл JAR, содержащий скомпилированный код функции и все ее зависимости . Зависимость Maven для плагина приведена ниже.
org.apache.maven.plugins maven-shade-plugin 3.2.2 false package shade
Если вы используете библиотеку appender (aws-lambda-java-log4j2), вы также должны настроить трансформатор для плагина Maven Shade. Библиотека transformer объединяет версии файла кэша, которые отображаются как в библиотеке appender, так и в Log4j.
org.apache.maven.plugins maven-shade-plugin 3.2.2 false package shade com.github.edwgiz maven-shade-plugin.log4j2-cachefile-transformer 2.13.0
Чтобы создать пакет развертывания, используйте команду mvn package
. Он сгенерирует JAR-файл в целевом каталоге.
Обработчик функции AWS Lambda – это метод в коде вашей функции, который обрабатывает события. Когда вызывается ваша функция, Lambda запускает метод обработчика. Когда обработчик завершает работу или возвращает ответ, он становится доступным для обработки другого события.
Интерфейсы обработчика
Библиотека aws-lambda-java-core определяет два интерфейса для методов обработчика. Используйте предоставленные интерфейсы для упрощения настройки обработчика и проверки подписи метода обработчика во время компиляции.
com.amazonaws.услуги.лямбда.время выполнения. Обработчик запросов
com.amazonaws.услуги.лямбда.время выполнения. Обработчик потока запроса
Интерфейс RequestHandler представляет собой универсальный тип, который принимает два параметра: тип ввода и тип вывода. Оба типа должны быть объектами. Когда вы используете этот интерфейс, среда выполнения Java десериализует событие в объект с типом ввода и сериализует выходные данные в текст. Используйте этот интерфейс, когда встроенная сериализация работает с вашими типами ввода и вывода.
// Handler value: example.Handler public class Handler implements RequestHandler
Чтобы использовать свою собственную сериализацию, реализуйте интерфейс обработчика потока запросов. С помощью этого интерфейса Lambda передает вашему обработчику входной поток и выходной поток. Обработчик считывает байты из входного потока, записывает в выходной поток и возвращает значение void.
Вывод
AWS SDK для Java следует изучить в соответствии с вашим вариантом использования и требованиями. Кроме того, помимо этих, есть дополнительные темы, такие как слои для AWS Lambda, для дальнейшего изучения.
Спасибо, что уделили мне время. Пожалуйста, поделитесь и предоставьте отзывы, если вам нравится блог.
Оригинал: “https://dev.to/prabhjeet6/aws-lambda-basics-part-2-1301”