Вот как я пытаюсь это сделать. подключиться:
Код: Выделить всё
host="redshift-host"
database="dev"
port=5439
user="admin"
password="the-admin-password"
serverless_acct_id="my_serverless_account_id"
serverless_work_group="my_workgroup_name"
# Option 1
conn = redshift_connector.connect(
iam=True,
host=host,
database=database,
access_key_id="AWS_ACCESS_KEY_ID",
secret_access_key="AWS_SECRET_ACCESS_KEY",
session_token="AWS_SESSION_TOKEN",
region="eu-north-1",
is_serverless=True,
serverless_acct_id=serverless_acct_id,
serverless_work_group=serverless_work_group
)
# Option 2
conn = redshift_connector.connect(
host=host,
database=database,
port=port,
user=user,
password=password,
)
Код: Выделить всё
raise OperationalError("connection time out", timeout_error) redshift_connector.error.OperationalError: ('connection time out', TimeoutError(60, 'Operation timed out'))Что я проверил:
- Публичный доступ: подтверждено, что для бессерверной конечной точки Redshift установлен общедоступный режим.
- Группы безопасности: проверено, что группа безопасности разрешает входящий трафик через порт 5439 с 0.0.0.0/0.
- Сетевые списки управления доступом: проверено, что сетевые списки управления доступом для подсети не блокируют входящий или исходящий трафик через порт 5439.
- Таблица маршрутов: проверено, что таблица маршрутов подсети включает маршрут к интернет-шлюзу (0.0.0.0/0 -> igw-XXXXXXXX).
Локальный брандмауэр: нет правил брандмауэра, блокирующих исходящий трафик. блокировка на порту 5439.
Я попробовал разрешить весь трафик в группе безопасности и установить для общего доступа значение True. Я ожидал, что смогу подключиться, но время ожидания истекло.
Обновление:
Я пытался подключиться к БД через DBeaver используя соединение JDBC, которое также завершается ошибкой: время попытки подключения истекло.
Поэтому мне кажется, что в настройке сети есть что-то, что не разрешает входящие связи...
Подробнее здесь: https://stackoverflow.com/questions/786 ... on-timeout