Версия 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-лямбда-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)?

Другие вопросы по тегам