Redash连接AWS Redis及RDS的REDASH_REDIS_URL等环境变量配置校验问题
配置核查结果
- REDASH_REDIS_URL配置正确,只要你的ElastiCache Redis实例未开启密码验证、安全组放通了Redash侧的访问,即可正常连接。
- REDASH_DATABASE_URL配置错误,不符合PostgreSQL连接URL的标准格式要求。
错误原因说明
PostgreSQL连接URL的标准结构为:postgresql://<数据库用户名>:<数据库密码>@<数据库地址>:<端口>/<数据库名>
你原有默认配置postgresql://postgres@postgres/postgres的含义是:使用用户名postgres,连接地址为postgres的实例上的postgres数据库,未配置密码、使用默认端口5432。
你修改后的配置错误地将RDS实例地址放在了@符号前的用户名位置,@符号后的数据库地址仍使用了原测试用的postgres,完全不符合连接规则。
正确配置示例
假设你RDS实例的配置为:用户名默认postgres、密码为创建时设置的YOUR_RDS_PASSWORD、端口默认5432、初始数据库名为postgres,正确的配置如下:
REDASH_REDIS_URL: "redis://redash-redis.xxxxxx.xx.xxxx.usw2.cache.amazonaws.com:6379/0" REDASH_DATABASE_URL: "postgresql://postgres:YOUR_RDS_PASSWORD@redash-1-instance-1.xxxxxxxxxxxx.us-west-2.rds.amazonaws.com:5432/postgres"
如果你的Redis实例开启了密码验证,需要将Redis URL调整为:REDASH_REDIS_URL: "redis://:YOUR_REDIS_PASSWORD@redash-redis.xxxxxx.xx.xxxx.usw2.cache.amazonaws.com:6379/0"
部署额外注意事项
- 不要将数据库密码、Redis密码等敏感信息硬编码在配置文件中,避免推送到ECR的镜像泄露敏感信息。建议将敏感参数存入AWS Secrets Manager或Parameter Store,Fargate任务启动时直接读取对应参数作为环境变量注入。
- 确认Fargate任务、ElastiCache Redis实例、RDS实例在同一VPC下,安全组配置正确:Redash任务的安全组放行到Redis 6379端口、RDS 5432端口的出站规则,Redis和RDS的安全组允许来自Redash安全组对应端口的入站规则。
- 如果你的RDS实例开启了SSL强制验证,需要在数据库URL末尾追加参数
?sslmode=require。
内容的提问来源于stack exchange,提问作者netthing
相关产品推荐
相关产品推荐

