Я пытаюсь использовать boto3 в python3.6 для подключения к моему кластеру Redshift с помощью API get_cluster_credentials.В следующем коде истекает 100% времени, когда лямбда-функция добавляется в VPC.Он запускается без проблем, когда Lambda не добавляется в VPC.
Я не могу понять, использует ли get_cluster_credentials публичный или частный IP для доступа к Redshift.Я также не могу понять, есть ли способ заставить его использовать один или другой.
import json
import boto3
def lambda_handler(event, context):
redshiftClient = boto3.client('redshift', region_name='us-east-1')
cluster_creds = redshiftClient.get_cluster_credentials( DbUser='awsuser',
DbName='dev',
ClusterIdentifier='redshift-cluster-1',
AutoCreate=False)
print(cluster_creds)
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
Моя конфигурация очень проста.NACL пропускает все (0.0.0.0/0) через все порты и протоколы.Мой SG делает то же самое.
У меня определен 1 интернет-шлюз: igw-0d1e6dcbfdea792b2
У меня есть 1 подсеть и 1 таблица маршрутизации в VPC.В таблице маршрутизации есть одно правило для отображения 0.0.0.0/0 -> igw-0d1e6dcbfdea792b2.
Я могу подключиться извне AWS к кластеру, используя SQL Workbench / J без проблем.
Я просмотрел много сообщений, тем и документов, но не могу понять, что происходит:
Время ожидания AWS Lambda при подключении к RedShift
Подключение LambdaRedshift в разных зонах доступности
https://github.com/awslabs/aws-lambda-redshift-loader/issues/86
Доступ к Redshift из Lambda - предотвращение группы безопасности 0.0.0.0/0
https://aws.amazon.com/blogs/big-data/a-zero-administration-amazon-redshift-database-loader/
Подключение AWS Lambda к Redshift - Время ожидания через 60 секунд
Пожалуйста, помогите.
Большое спасибо.