Интеграция AWS Lambda и Aurora PostgreSQL для HTTP-запросов

Обновлено: 21 августа, 2024

Некоторые клиенты используют пакет Oracle UTL_HTTP для разработки программ на PL/SQL, которые облегчают взаимодействие с веб-серверами (HTTP) и вызов сторонних API. Однако при переходе на Amazon Aurora PostgreSQL-Compatible Edition или Amazon RDS for PostgreSQL пользователи должны провести кастомную конвертацию своего SQL-кода, так как в PostgreSQL отсутствует прямой эквивалент функциональности UTL_HTTP. Пакет UTL_HTTP в Oracle позволяет выполнять HTTP-вызовы непосредственно из PL/SQL, что требует адаптации в среде PostgreSQL.

Обзор решения

Это решение подчеркивает интеграцию AWS Lambda с Amazon Aurora PostgreSQL. Методология также применима к Amazon RDS for PostgreSQL. AWS Lambda — это серверлесс-вычислительная служба, которая позволяет выполнять код без необходимости управления серверами. Она автоматически масштабируется и выполняет код в ответ на различные события или триггеры, включая HTTP-запросы.

Пользователи могут отправлять HTTP-запросы для вызова Лямбда-функции из базы данных Aurora PostgreSQL, используя модуль Python Requests. Эта элегантная HTTP-библиотека упрощает процесс отправки запросов HTTP/1.1.

Высокоуровневые шаги решения изложены ниже:

  1. Создайте новую схему с именем utl_http_utility в базе данных Amazon Aurora PostgreSQL.
  2. Определите объекты Request и Response как пользовательские типы данных в Aurora PostgreSQL для представления HTTP-запросов и ответов.
  3. Реализуйте пользовательские обертки функций PL/pgSQL в базе данных Aurora PostgreSQL для различных операций HTTP, таких как инициирование запроса, установка аутентификации, настройка заголовков и обработка ответов. Эти функции непрерывно строят JSON-объект, инкапсулирующий все параметры HTTP, включая содержимое ответа, URL, параметры, пользовательские заголовки и полезную нагрузку.
  4. Установите расширения aws_lambda и aws_commons в базе данных Aurora PostgreSQL для облегчения интеграции с Лямбда-функциями, улучшая обработку API-запросов и ответов.
  5. Создайте обертку функции get_response в базе данных Aurora PostgreSQL. Эта функция принимает JSON-объект запроса в качестве входных данных и вызывает Лямбда-функцию, которая реализована на Python с использованием модуля Requests для отправки HTTP-запросов к желаемой конечной точке API.

Лямбда-функция выполняет вызовы API веб-службы и возвращает ответы, обеспечивая реальное время (синхронную) передачу данных обратно в базу данных Aurora.

Архитектура проиллюстрирована на прилагаемой диаграмме. Компоненты этой архитектуры включают:

  • Базу данных Aurora PostgreSQL с установленными расширениями aws_lambda и пользовательскими функциями-обертками.
  • Лямбда-функцию, которая обрабатывает HTTP-запросы из базы данных, вызывает API и передает ответы.
  • Роль AWS Identity and Access Management (IAM) для вызова Лямбда-функций из базы данных Aurora PostgreSQL.

Эта архитектура обеспечивает гибкость и масштабируемость при интеграции HTTP-запросов в среде PostgreSQL, предоставляя пользователям мощный инструмент для взаимодействия с внешними API и веб-сервисами.

Опубликовано: 21 августа, 2024

ЕЩЕ СТАТЬИ ПО ДАННОЙ ТЕМЕ

Поддержка Postgre SQL

Поддержка — это когда у вас возникает техническая
проблема с существующей системой,
и вам необходимо некоторое руководство