Aws rds Enable-http-endpoint не меняет флаг кластера базы данных Postgres

Я использую кластер базы данных postgres на aws и хотел бы разрешить экземпляру ec2 вносить программные изменения в базу данных. При попытке запустить программу получаю следующую ошибку:

"botocore.errorfactory.HttpEndpointNotEnabledException: An error occurred (HttpEndpointNotEnabledException) when calling the ExecuteStatement operation: HttpEndpoint is not enabled for resource arn:aws:rds:xxxx:xxxx:cluster:xxxx." 

Однако когда я пытаюсь включить HttpEndpoint через aws cli на экземпляре ec2 с помощью команды:

aws rds modify-db-cluster --db-cluster-identifier db-xxxx --enable-http-endpoint

Флаг оставлен без изменений. Я также пробовал использовать флаг --apply-immediately, хотя в документации говорится, что это не имеет значения. Как включить HttpEndpoint в кластере базы данных postgres 16.3, работающем на aws?

В экземпляре ec2, подключенном к кластеру postgres:

$ aws rds modify-db-cluster --db-cluster-identifier db-xxxx --enable-http-endpoint

и

$ aws rds modify-db-cluster --db-cluster-identifier db-xxxx --enable-http-endpoint --apply-immediately

оба дают один и тот же ответ:

{
    "DBCluster: {
        "AllocatedStorage": xxxx,
        "DBClusterIdentifier": "db-xxxxx",
        ...
        "HttpEndpointEnabled: false,
        ...
}

Я ожидал, что ответ изменит значение HttpEndpointEnabled на true:

{
    "DBCluster: {
        "AllocatedStorage": xxxx,
        "DBClusterIdentifier": "db-xxxxx",
        ...
        "HttpEndpointEnabled: true,
        ...
}

Я также попробовал запустить:

aws rds enable-http-endpoint --resource-arn arn:aws:rds:us-east-2:xxxx:cluster:db-xxxx

В кластере Aurora PostgreSQL возникла следующая ошибка:

An error occurred (InvalidParameterValue) when calling the EnableHttpEndpoint operation: Access Denied to API Version: APIDataApi

Я попытался открыть группу безопасности для всего трафика, думая, что команда может быть на каком-то порту, отличном от 5432, но ошибка все та же.

Решение см. в комментариях: Услуга недоступна в Огайо (США-Восток-2)

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
97
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Опция modify-db-cluster работает только с Aurora Serverless V1 в соответствии с документацией , так что, скорее всего, она вам не поможет. Вы пишете о кластере БД Postgres 16.3, последняя поддерживаемая версия, которую я вижу, — 16.2 на момент написания этой статьи, вы уверены, что это правильно?

Помимо этого, в первых документах, на которые я ссылался, упоминалось, что вы должны использовать API EnableHttpEndpoint или DisableHttpEndpoint для чего-либо, кроме Aurora Serverless v1.

В вашем случае следующая команда должна включить конечную точку:

$ aws rds enable-http-endpoint --resource-arn <cluster-arn>

Спасибо за помощь. Я думаю, что разница в версии заключается в том, что это кластер PostgreSQL, а не кластер Aurora PostgreSQL. Когда я запускаю предложенную вами команду, я получаю новую ошибку: Access Denied to API Version: APIDataApi, которая, как я предполагаю, связана с какой-то проблемой с разрешениями. Я добавил АдминистраторДоступ к экземпляру EC2 и попробовал еще раз. Я также попробовал использовать кластер базы данных Aurora PostgreSQL 16.1 с одной и той же ошибкой оба раза.

qualityPancakes 24.06.2024 15:08

API данных доступен только для Aurora Postgres, а не для «обычного» Postgres AFAIK: docs. Можете ли вы добавить команды, которые вы выполняете, а также полное сообщение об ошибке в качестве редактирования исходного вопроса (не стесняйтесь заменять идентификатор учетной записи)

Maurice 24.06.2024 15:14

Думаю, я нашел ответ. Я работал в Огайо (восток США-2), но DataApi недоступен для бессерверных серверов Aurora PostgreSQL v2 в этом регионе. Он доступен в Северной Вирджинии (США-Восток-1). Я переведу операции в этот регион.

qualityPancakes 24.06.2024 17:29

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