我已经部署了一个负载平衡的Web服务:
About
Application my-app
Name api
Type Load Balanced Web Service
Configurations
Environment Tasks CPU (vCPU) Memory (MiB) Port
----------- ----- ---------- ------------ ----
production 1 0.25 512 80
Routes
Environment URL
----------- ---
production http://xxxxx.us-east-1.elb.amazonaws.com
Service Discovery
Environment Namespace
----------- ---------
production api.my-app.local:80
Variables
Name Container Environment Value
---- --------- ----------- -----
COPILOT_APPLICATION_NAME " " my-app
COPILOT_ENVIRONMENT_NAME " " production
COPILOT_LB_DNS " " xxxx.us-east-1.elb.amazonaws.com
COPILOT_SERVICE_DISCOVERY_ENDPOINT " " my-app.local
COPILOT_SERVICE_NAME " " api
REDIS_URL " " redis://redis.my-app.local:6379
和redis作为后端服务在同一个副驾驶应用程序中:
About
Application my-app
Name redis
Type Backend Service
Configurations
Environment Tasks CPU (vCPU) Memory (MiB) Port
----------- ----- ---------- ------------ ----
production 1 0.25 512 6379
Service Discovery
Environment Namespace
----------- ---------
production redis.my-app.local:6379
Variables
Name Container Environment Value
---- --------- ----------- -----
COPILOT_APPLICATION_NAME redis production my-app
COPILOT_ENVIRONMENT_NAME " " production
COPILOT_SERVICE_DISCOVERY_ENDPOINT " " my-app.local
COPILOT_SERVICE_NAME " " redis
当我查看Route53上的记录时,redis.my-app.local
就出现了。但是,我的api中的日志总是说:
uncaughtException: Redis connection to redis.my-app.local:6379 failed - getaddrinfo ENOTFOUND redis.my-app.local
然后在某个时候红星关闭因为没有进入的连接..。有什么问题吗?
发布于 2021-12-21 21:43:16
看起来您找到了解决方案:必须启用DNS主机名。
对于可能遇到同样问题的其他人:
默认情况下,副驾驶会:
EnableDnsHostnames: true
EnableDnsSupport: true
我们将为导入的VPC添加一个警告,但同时,确保为现有的VPC启用了DNS主机名。
https://stackoverflow.com/questions/70396484
复制相似问题