无法使用 awsvpc 网络类型与 ECS Fargate 上同一任务中的另一个容器通信

Cannot talk to another container inside same task on ECS Fargate using awsvpc networking type

我是 运行 一个标准的 SPA 前端应用程序和一个节点服务器,在同一个 ECS 任务中。

我读到的关于 awsvpc 的所有内容都可以在同一任务中的 2 个容器相互连接时使用 localhost

但是,通过这个设置,我似乎无法 return 从我的节点服务器到我的 UI 的数据。我的所有请求立即失败。我已经断言它实际上是在尝试在我的实际计算机上点击 localhost

浏览器故障: https://pasteboard.co/JFJLnLO.png

出于测试目的,我公开了端口 8080 以查看我是否可以直接与节点服务器交互并且是否按预期工作。我只是无法让 UI 与它交谈。

如有任何帮助,我们将不胜感激

编辑:

我的任务定义如下:

  "containerDefinitions": [
    {
      "essential": true,
      "image": "[my-account-id].dkr.ecr.eu-west-1.amazonaws.com/[my-account]/app-ui:latest",
      "name": "app-ui",
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "/ecs/app-ui",
          "awslogs-region": "eu-west-1",
          "awslogs-stream-prefix": "ecs",
          "awslogs-create-group": "true"
        }
      },
      "portMappings": [
        {
          "containerPort": 3000,
          "hostPort": 3000,
          "protocol": "tcp"
        }
      ]
    },
    {
      "essential": true,
      "image": "[my-account-id].dkr.ecr.eu-west-1.amazonaws.com/[my-account]/app-api:latest",
      "name": "app-api",
      "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "/ecs/app-api",
          "awslogs-region": "eu-west-1",
          "awslogs-stream-prefix": "ecs",
          "awslogs-create-group": "true"
        }
      },
      "portMappings": [
        {
          "containerPort": 8080,
          "hostPort": 8080,
          "protocol": "tcp"
        }
      ]
    }
  ],
  "cpu": "256",
  "executionRoleArn": "arn:aws:iam::[my-account-id]:role/AWSServiceRoleECS",
  "family": "app",
  "memory": "512",
  "networkMode": "awsvpc",
  "requiresCompatibilities": ["FARGATE"]
}


  [1]: https://i.stack.imgur.com/S7zl3.png

根据评论。

问题是由在浏览器的客户端调用localhostapi端点引起的。这将在客户端计算机上解析为 localhost,而不是在 ECS 任务中。当从 ECS 任务内部而不是从任务外部调用 API 时,localhost 将起作用。

要从客户端调用 API 端点,需要常规 public IP 或 public DNS,而不是 localhost