Amazon web services 资源:尝试使用AWS CLI运行ECS任务时出现内存错误

Amazon web services 资源:尝试使用AWS CLI运行ECS任务时出现内存错误,amazon-web-services,amazon-ec2,Amazon Web Services,Amazon Ec2,我正在尝试与AWS ECS和docker建立CI。我将Codeship用作CI工具,但这并不重要 我在shell脚本中执行以下步骤: 用我的Dockerfile创建一个映像 将映像推送到ECS存储库 将task-definition.json推送到ECSaws ECS注册任务定义--family postgraphile--cli输入jsonfile:///deploy/ecs-task-def.json --美国东部2区 运行ECS任务aws ECS运行任务--任务定义发帖--群集测试群集-

我正在尝试与AWS ECS和docker建立CI。我将Codeship用作CI工具,但这并不重要

我在shell脚本中执行以下步骤:

  • 用我的Dockerfile创建一个映像
  • 将映像推送到ECS存储库
  • 将task-definition.json推送到ECS
    aws ECS注册任务定义--family postgraphile--cli输入jsonfile:///deploy/ecs-task-def.json --美国东部2区
  • 运行ECS任务
    aws ECS运行任务--任务定义发帖--群集测试群集--区域us-east-2
Shell脚本成功运行,但在尝试运行ECS任务后,我在输出中看到一个错误:

{
    "tasks": [],
    "failures": [
        {
            "arn": "arn:aws:ecs:us-east-2:99999999999:container-instance/050ab165-7669-45d5-8be7-d990cf4fff42",
            "reason": "RESOURCE:MEMORY"
        }
    ]
}
my
ecs任务定义.json

{
  "containerDefinitions": [
    {
      "name": "postgraphile-container",
      "image": "999999999999.dkr.ecr.us-east-2.amazonaws.com/test-repository",
      "memory": 500,
      "essential": true,
      "portMappings": [
        {
          "hostPort": 5000,
          "containerPort": 5000
        }
      ]
    }
  ],
  "volumes": [],
  "memory": "900",
  "cpu": "128",
  "placementConstraints": [],
  "family": "postgraphile",
  "taskRoleArn": ""
}
我想我已经检查了所有的内存限制。。我遗漏了什么吗

更新:
在ec2实例的两次重新启动之后,我终于可以运行ecs任务了,没有任何错误。在多次运行任务后,错误返回

在我的例子中,这是因为我的EC2实例的内存少于我在容器中指定的内存。我可以在我的服务(ECS>群集>服务>事件)的“事件”选项卡中找到详细信息。您是否知道如何让“aws ECS运行任务”在您的群集上运行一个具有足够内存的实例来运行任务?是的,任务定义一切正常。我的问题是:当已经有一个正在运行的任务时,我试图运行该任务。因此,由于我只想重新启动一个正在运行的任务,实际上我必须停止正在运行的任务,并使用相同的任务定义再次运行它。在我的情况下,我想要8,所以我写了内存:8000000,但内存是以兆字节为单位的,所以我需要8000(确切地说是7800)。@cklab谢谢朋友。我又更新了一个小的EC2实例类型,但我的elastic beanstalk应用程序停止工作。所以原因正是您所说的:“我的EC2实例的内存比我在容器中指定的要少”。。。非常感谢。