首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用副驾驶仪和服务发现找不到Redis

使用副驾驶仪和服务发现找不到Redis
EN

Stack Overflow用户
提问于 2021-12-17 16:57:31
回答 1查看 79关注 0票数 1

我已经部署了一个负载平衡的Web服务:

代码语言:javascript
运行
复制
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作为后端服务在同一个副驾驶应用程序中:

代码语言:javascript
运行
复制
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中的日志总是说:

代码语言:javascript
运行
复制
uncaughtException: Redis connection to redis.my-app.local:6379 failed - getaddrinfo ENOTFOUND redis.my-app.local

然后在某个时候红星关闭因为没有进入的连接..。有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-21 21:43:16

看起来您找到了解决方案:必须启用DNS主机名。

对于可能遇到同样问题的其他人:

默认情况下,副驾驶会:

代码语言:javascript
运行
复制
EnableDnsHostnames: true
EnableDnsSupport: true

我们将为导入的VPC添加一个警告,但同时,确保为现有的VPC启用了DNS主机名。

参考文献:https://github.com/aws/copilot-cli/issues/2211

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70396484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档