【问题标题】:How to run non-web docker container on AWS ECS如何在 AWS ECS 上运行非 Web docker 容器
【发布时间】:2021-08-29 05:38:53
【问题描述】:

我所拥有的是 Python 脚本,它们侦听 SQS 并处理从这些脚本接收到的消息。这些被 dockerized 并上传到 ECR。要求是使用 EC2 在 ECS 上运行此 docker,并根据来自 sqs 的消息数量进行扩展/扩展。

问题是我无法运行定义的任务,我认为它的原因是没有设置健康检查,所以我将它设置为 CMD_SHELL, ps aux | grep "Python" || exit 1 ,但没有人可以帮助我。也可以在 ECS 上运行 Non-Web 应用程序。

如果有人有任何文件,请指点我。

我在这里发布我的容器定义

i-00bd43d507b521acc



{
  "ipcMode": null,
  "executionRoleArn": "arn",
  "containerDefinitions": [
    {
      "dnsSearchDomains": null,
      "environmentFiles": null,
      "logConfiguration": {
        "logDriver": "awslogs",
        "secretOptions": null,
        "options": {
          "awslogs-group": "python-extract",
          "awslogs-region": "us-east-1",
          "awslogs-stream-prefix": "ecs"
        }
      },
      "entryPoint": [
        "/bin/sh",
        "-c",
        "/tmp/bin/main"
      ],
      "portMappings": [
        {
          "hostPort": 0,
          "protocol": "tcp",
          "containerPort": 80
        }
      ],
      "command": null,
      "linuxParameters": null,
      "cpu": 256,
      "environment": [
      ],
      "resourceRequirements": null,
      "ulimits": null,
      "dnsServers": null,
      "mountPoints": [],
      "workingDirectory": null,
      "secrets": null,
      "dockerSecurityOptions": null,
      "memory": null,
      "memoryReservation": 512,
      "volumesFrom": [],
      "stopTimeout": null,
      "image": "<docker-registery:latest>",
      "startTimeout": null,
      "firelensConfiguration": null,
      "dependsOn": null,
      "disableNetworking": null,
      "interactive": null,
      "healthCheck": {
        "retries": 3,
        "command": [
          "ps aux | grep "python" || exit 1"
        ],
        "timeout": 5,
        "interval": 30,
        "startPeriod": 5
      },
      "essential": true,
      "links": null,
      "hostname": null,
      "extraHosts": null,
      "pseudoTerminal": null,
      "user": null,
      "readonlyRootFilesystem": null,
      "dockerLabels": null,
      "systemControls": null,
      "privileged": null,
      "name": "python-extract"
    }
  ],
  "placementConstraints": [],
  "memory": "1024",
  "taskRoleArn": "arn:aws:iam::<is>:role/ecsTaskRole",
  "compatibilities": [
    "EC2",
    "FARGATE"
  ],
  "taskDefinitionArn": "<ecsTaskRole>",
  "family": "map-extractor",
  "requiresAttributes": [
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "ecs.capability.execution-role-awslogs"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "com.amazonaws.ecs.capability.ecr-auth"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "com.amazonaws.ecs.capability.docker-remote-api.1.21"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "com.amazonaws.ecs.capability.task-iam-role"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "ecs.capability.container-health-check"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "ecs.capability.execution-role-ecr-pull"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "ecs.capability.task-eni"
    },
    {
      "targetId": null,
      "targetType": null,
      "value": null,
      "name": "com.amazonaws.ecs.capability.docker-remote-api.1.29"
    }
  ],
  "pidMode": null,
  "requiresCompatibilities": [
    "EC2"
  ],
  "networkMode": "awsvpc",
  "cpu": "256",
  "revision": 6,
  "status": "ACTIVE",
  "inferenceAccelerators": null,
  "proxyConfiguration": null,
  "volumes": []
}

任何关于是否可以在 ECS 上运行非服务器容器的建议都会有很大的帮助,或者有人已经这样做了,请告诉我应该是什么健康检查

【问题讨论】:

    标签: amazon-web-services docker amazon-ec2 amazon-ecs aws-fargate


    【解决方案1】:

    运行 ECS 任务不需要“he​​althCheck”。我建议您检查任务的停止状态并在“python-extract”CloudWatch 日志组中查看任务的日志。

    【讨论】:

      猜你喜欢
      • 2016-09-09
      • 2017-06-30
      • 1970-01-01
      • 2022-01-19
      • 2020-09-07
      • 1970-01-01
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多