ark*_*k0n 10 python ip-address amazon-web-services amazon-ecs flask
我正在尝试将一个超级简单的容器化烧瓶应用程序部署到 ECS。我知道该映像是docker-compose可用的并且构建得很好,因为我将它作为 CodePipeline 的一部分,该 CodePipeline 正在构建、标记并将最终的 docker 映像推送到 ECR。
Build completed on Sat Feb 15 21:48:44 UTC 2020
[Container] 2020/02/15 21:48:44 Running command echo Pushing the Docker images...
Pushing the Docker images...
[Container] 2020/02/15 21:48:44 Running command docker push $REPOSITORY_URI:latest
...
025f20c0831b: Pushed
98e916abdf11: Pushed
此时我可能应该澄清该应用程序在本地运行,并且我已将主机指定app.run()为0.0.0.0.
此时我已经有了一个ECS集群
具有正在运行的任务和公共 IP
以及指示应用程序已启动的日志。
我还修改了安全组的入站端口以包括0.0.0.0,上的 5000 ::/0。
从理论上讲,这意味着您应该能够访问端口3.80.1.115,但您应该看到标准,您甚至从浏览器中输入了响应内容。
我只是不确定发生了什么,因为我看起来很接近...应用程序在 ECS 中运行没有错误,一切都很棒,除了应用程序无法访问。想法?
也许您应该检查ECS 任务定义的networkMode和设置。portMappings
在安全组中,您允许该端口的流量TCP/80,但我可以在您的应用程序日志 () 中读到Running on http://0.0.0.0:5000/您的应用程序正在不同的端口中运行TCP/5000。
以下是监听 por 的 Nginx 任务的示例TCP/80:
{
  "requiresCompatibilities": [
    "FARGATE"
  ],
  "containerDefinitions": [
    {
      "name": "nginx",
      "image": "nginx:latest",
      "memory": 256,
      "cpu": 256,
      "essential": true,
      "portMappings": [
        {
          "containerPort": 80,
          "protocol": "tcp"
        }
      ],
      "logConfiguration":{
            "logDriver":"awslogs",
            "options":{
               "awslogs-group":"awslogs-nginx-ecs",
               "awslogs-region":"us-east-1",
               "awslogs-stream-prefix":"ecs"
            }
      }
    }
  ],
  "volumes": [],
  "networkMode": "awsvpc",
  "placementConstraints": [],
  "family": "nginx",
  "memory": "512",
  "cpu": "256"
}
您可以在此处查看其他示例
| 归档时间: | 
 | 
| 查看次数: | 4529 次 | 
| 最近记录: |