Можно ли запросить инстанс Amazon RDS напрямую из API Gateway?

Я новичок в API Gateway, и, насколько я пробовал, это действительно мощный инструмент. Для проекта, над которым я сейчас работаю, мы используем экземпляр PostgreSQL в RDS. Я видел, что возможен прямой доступ к таблицам DynamoDB из API Gateway, поэтому мне было интересно, есть ли способ сделать это для реляционных баз данных. Поэтому я создал ресурс с помощью метода GET и настроил его для подключения к моей базе данных, но я не был уверен, что использовал правильные параметры:

Предоставлена ​​информация о целевом сервере

Поэтому я не был уверен в аргументах в каждом поле настройки. В поддомене AWS я написал общедоступный URL-адрес, как если бы я подключался к себе из моего клиента pgAdmin (без порта, потому что полная структура не была принята, поэтому я знаю, что делаю что-то плохое). До этого я пытался использовать ARN своего ресурса RDS, но появлялась эта ошибка:

AWS ARN for integration must contains path or action

Для роли исполнения я создал одну с политиками для доступа к моему ресурсу Postgres.

Читая документацию по RDS, я обнаружил, что можно использовать Query API из RDS, используя HTTP-команду GET или POST и параметр запроса с именем Action, поэтому я попытался выяснить, как разместить оператор запроса следующим образом:

Запросы на основе HTTP-запросов

Но когда я тестирую метод, это тело ответа:

{
  "message": "AWS ARN for integration contains invalid action"
}

А это логи:

Execution log for request test-request
Sat Mar 19 15:27:17 UTC 2016 : Execution failed: AWS ARN for integration contains invalid action
Sat Mar 19 15:27:17 UTC 2016 : Method completed with status: 400

Я знаю, что делаю много вещей неправильно, поэтому кто-нибудь знает, возможно ли это на самом деле и как это сделать, потому что я еще не нашел подробного руководства.


person Camilo Ortegón    schedule 19.03.2016    source источник
comment
Поддерживаемые действия для RDS: docs.aws.amazon.com/AmazonRDS/latest. /APIReference/   -  person kartik    schedule 11.12.2016
comment
Это все еще интересный вопрос, и с введением API данных для RDS Aurora Serverless еще может быть надежда...   -  person aalaap    schedule 24.11.2020


Ответы (1)


Нет, это невозможно. Прокси службы шлюза API будет проксировать только вызовы API AWS. RDS API позволяет вам делать только такие вещи, как создание базы данных, удаление базы данных, создание моментальных снимков и т. д. Он не позволяет вам подключаться и выполнять запросы к базе данных.

Вам следует обратить внимание на то, чтобы указать шлюзу API функцию Lambda, которая имеет возможность подключаться к вашей базе данных RDS и выполнять запросы.

person Mark B    schedule 19.03.2016
comment
Вы правы, ни одно из действий RDS не описывает sql-запрос. Благодарю вас! - person Camilo Ortegón; 19.03.2016