Доступ AWS Java Lambda к экземпляру AWS RDS MySQL с помощью CDK

RedDeveloper
03.01.2023 02:08
Доступ AWS Java Lambda к экземпляру AWS RDS MySQL с помощью CDK

В этой статье мы рассмотрим, как включить доступ Java Lambda к экземпляру AWS RDS MySQL.

Предварительные условия:

Настройте экземпляр AWS RDS MySQL (см. Создание базы данных AWS RDS MySQL с помощью MySQL WorkBench ).

В этой статье мы будем придерживаться аналогичного подхода к разработке Java CDK Approach, как описано в статье Creating an AWS Serverless Java 11 Application with CDK (Lambda, S3, DynamoDb, API Gateway) .

Настройка проекта:

Создайте Java Lambda для запроса и обновления данных в этой базе данных.

Предположение: Вы уже настроили консоль AWS и среду Eclipse, как описано в разделе Начало работы с AWS, Java 11 (Amazon Corretto), Eclipse и AWS Toolkit .

  1. Создайте проект Java MySQL Lambda с помощью CDK
cd c:\projects
mkdir mysqljlambda
cd mysqljlambda
cdk init app --language java
Предположение Вы уже настроили консоль AWS и среду Eclipse как описано в разделе Начало

2. Откройте проект в Eclipse

Файл -> Открыть проекты из файловой системы

Файл -> Открыть проекты из файловой системы

Нажмите Finish

Теперь ваш Eclipse должен выглядеть следующим образом:

Теперь ваш Eclipse должен выглядеть следующим образом

Убедитесь, что ваш Java Build Path настроен правильно с JavaSE-11 и Maven Dependencies выбран (щелкните правой кнопкой мыши на Project Explorer в Eclipse, чтобы открыть путь сборки):

Убедитесь что ваш Java Build Path настроен правильно с JavaSE-11 и Maven Dependencies

Теперь мы будем работать над созданием Java Lambda для доступа к базе данных Postgres, которую мы создали выше.

Создайте класс AWS Lambda Handler GetRDSDataLambdaHandler, щелкнув правой кнопкой мыши в проводнике проекта New->Class

Создайте класс AWS Lambda Handler GetRDSDataLambdaHandler щелкнув правой кнопкой мыши в

Обратитесь к коду, расположенному по адресу https://github.com/collin-smith/mysqljlambda для следующих 3 классов или файлов:

  • com.myorg.MysqljlambdaApp.java
  • com.myorg.MysqljlambdaStack.java
        //MySQL RDS Configuration
        env.put("DBENDPOINT", "dbendpointforrdsmysl");
        env.put("DATABASENAME", "santasworkshop");
        env.put("USERNAME", "myusername");
        env.put("PASSWORD", "mypassword");

(** В классе MysqljlambdaStack.java убедитесь, что информация RDS правильно настроена для вашего экземпляра в классе выше, чтобы подключиться к экземпляру RDS MySQL. Затем конечная точка может быть получена из консоли AWS для экземпляра RDS)

  • com.myorg.lambda.GetRDSDataLambdaHandler.java
  • pom.xml

Введите "clean install" и нажмите run

Введите "clean install" и нажмите runВведите "clean install" и нажмите run

После сборки вы сможете перейти в консоль cmd и выполнить следующие шаги для развертывания проекта в среде aws:

cd c:\projects\mysqljlambda
cdk bootstrap
После сборки вы сможете перейти в консоль cmd и выполнить следующие шаги для развертывания
cdk synth
После сборки вы сможете перейти в консоль cmd и выполнить следующие шаги для развертывания
cdk deploy
После сборки вы сможете перейти в консоль cmd и выполнить следующие шаги для развертывания

Теперь конечная точка Lamdba должна быть развернута в вашей среде AWS, и у вас должна быть конечная точка, которую вы можете протестировать с помощью PostMan.

Теперь конечная точка Lamdba должна быть развернута в вашей среде AWS и у вас должна бытьRunning the endpoint in PostMan

Вот как выглядит успешный запуск Lambda. Эта Lambda считывает записи из таблицы, а также вставляет запись в таблицу.

Это можно увидеть, выполнив следующую SQL-команду в клиенте MySQL WorkBench, чтобы убедиться, что Lambda вставила новую запись в базу данных MySQL.

SELECT * FROM LETTERHISTORY
Это можно увидеть выполнив следующую SQL-команду в клиенте MySQL WorkBench чтобы

Устранение неполадок:

Проверьте в группах журналов CloudWatch, есть ли у вас неожиданные ошибки для устранения неполадок. Я бы посмотрел на группы журналов для этой Lambda, чтобы лучше понять ошибки.

Проверьте в группах журналов CloudWatch есть ли у вас неожиданные ошибки для устранения

На этом мы закончим настройку Java Lambda-запроса и внесение обновлений в экземпляр MySQL RDS.

Очистка ресурсов:

Если вы закончили работу с экземпляром MySQL, перейдите в раздел RDS в консоли AWS и удалите экземпляр базы данных.

Также для удаления кода Lambda следует выполнить команду cdk destroy, чтобы удалить код, развернутый проектом cdk.

cdk destroy
Также для удаления кода Lambda следует выполнить команду cdk destroy чтобы удалить код
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?

20.08.2023 18:21

Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией

20.08.2023 17:46

В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox

19.08.2023 18:39

Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest

19.08.2023 17:22

В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!

Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️

18.08.2023 20:33

Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL

14.08.2023 14:49

Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.