Доступ 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 чтобы удалить код
[JS за 1 час] - 9. Асинхронный
[JS за 1 час] - 9. Асинхронный

06.02.2023 13:41

JavaScript является однопоточным, то есть он может обрабатывать только одну задачу за раз. Для обработки длительных задач, таких как сетевые запросы, ввод/вывод файлов или анимация, JavaScript использует асинхронную модель программирования.

Топ-10 компаний-разработчиков PHP
Топ-10 компаний-разработчиков PHP

06.02.2023 12:02

Если вы ищете надежных разработчиков PHP рядом с вами, вот список лучших компаний по разработке PHP.

Скраппинг поиска Apple App Store с помощью Python
Скраппинг поиска Apple App Store с помощью Python

05.02.2023 12:54

📌Примечание: В этой статье я покажу вам, как скрапировать поиск Apple App Store и получить точно такой же результат, как на Apple iMac, потому что результаты поиска на Mac полностью отличаются от результатов на PC. На скриншотах ниже показана разница:

Редкие достижения на Github ✨
Редкие достижения на Github ✨

05.02.2023 12:13

Редкая коллекция доступна в профиле на GitHub ✨

Подъем в javascript
Подъем в javascript

04.02.2023 13:59

Hoisting - это поведение в JavaScript, при котором переменные и объявления функций автоматически "перемещаются" в верхнюю часть соответствующих областей. Это означает, что независимо от того, где они объявлены в вашем коде, они будут обрабатываться так, как если бы они были объявлены в верхней части...

Улучшение генерации файлов Angular
Улучшение генерации файлов Angular

04.02.2023 12:52

Angular - это фреймворк. Вы можете создать практически любое приложение без использования сторонних библиотек.