Версия AWS Java SDK для создания лямбды
Я пытаюсь разработать лямбда-функцию AWS Java, следуя инструкциям, описанным здесь. В нем описывается реализация RequestHandler
интерфейс, а также ссылается на библиотеку aws-lambda-java-core. Тем не менее, я пытаюсь использовать последний SDK, как рекомендовано здесь, но это совершенно другое, и RequestHandler
Интерфейс больше не существует.
Мне не понятно, какое имя и версия java-библиотек мне нужны. Есть ли какие-либо рекомендации по всем различным версиям Java-библиотек AWS и обновленным примерам? Я должен признать, что я полностью смущен версиями и именами библиотек Java AWS и не совсем знаю, что / что мне нужно добавить в качестве зависимости, просто чтобы создать простую лямбда-функцию AWS в Java.
3 ответа
Тем не менее, я пытаюсь использовать последний SDK, как рекомендовано здесь, но это совершенно другое, и
RequestHandler
Интерфейс больше не существует.
Вы неправильно используете зависимость. Это SDK для использования Сервисов AWS через его REST API, например:
- Помещение объекта в S3
- Перечисление экземпляров EC2
- Удаление элемента из AWS DynamoDB
- Вызывая лямбду
- ...
Т.е. это SDK для работы с различными сервисами AWS. Он состоит из множества библиотек, таких как aws-java-sdk-s3
, aws-java-sdk-dynamodb
, aws-java-sdk-lambda
является одним из них, но он предназначен для взаимодействия с Lambda API, а не для создания Lambdas.
Библиотеки, которые вам нужны для создания Lambdas:
com.amazonaws:aws-lambda-java-core
com.amazonaws:aws-lambda-java-events
Как видите, они разные. Первый обеспечивает Handler
интерфейсы, которые вы ищете, а второй содержит различные события, которые Lambda может принимать в качестве входных данных: события SNS, таймеры CloudWatch и так далее.
Lambda поддерживает два подхода для создания обработчика:
Загрузка метода-обработчика напрямую без необходимости реализации интерфейса. Этот раздел описывает этот подход.
Реализация стандартных интерфейсов, предоставляемых как часть библиотеки aws-lambda-java-core (интерфейсный подход). Для получения дополнительной информации см. Использование предопределенных интерфейсов для создания обработчика (Java).
У меня аналогичная проблема, как найти новые зависимости и версии, которые работают для AWS JDK V2?
Я использовал
<!-- original working fine with V1 -->
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-lambda</artifactId>
<version>1.10.21</version>
<groupId>software.amazon.awssdk</groupId>
<artifactId>lambda</artifactId>
<version>2.16.60</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-events</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-log4j</artifactId>
<version>1.0.0</version>
</dependency>
каков эквивалент этих зависимостей в AWS JDK V2 (software.amazon.awssdk)?