一尘不染

运行任务时出现AWS ECS错误:在集群中未找到容器实例

docker

我正在尝试将docker容器映像部署为AWS使用ECS,但未创建EC2实例。我在互联网上搜寻了有关为什么收到以下错误的解释:

“调用RunTask操作时发生客户端错误(InvalidParameterException):在群集中未找到容器实例。”

这是我的步骤:

1.将Docker映像从Ubuntu推送到我的Amazon ECS存储库。

2.注册了ECS任务定义:

aws ecs register-task-definition --cli-input-json file://path/to/my-task.json

3.处理任务:

aws ecs run-task --task-definition my-task

然而,它失败了。

这是我的任务:

{
  "family": "my-task",
  "containerDefinitions": [
    {
        "environment": [],
        "name": "my-container",
        "image": "my-namespace/my-image",
        "cpu": 10,
        "memory": 500,
        "portMappings": [
            {
                "containerPort": 8080,
                "hostPort": 80
            }
        ],
        "entryPoint": [
            "java",
            "-jar",
            "my-jar.jar"
        ],
        "essential": true
    }
  ]
}

我也尝试过使用管理控制台来配置集群和服务,但是却遇到了同样的错误。如何将群集配置为具有ec2实例,我需要使用哪种容器实例?
我以为整个过程都是从创建EC2实例开始的!


阅读 349

收藏
2020-06-17

共1个答案

一尘不染

经过几个小时的调查,我发现了这一点。亚马逊,如果您正在侦听,则在创建集群或向集群添加实例时,应在管理控制台中的某个位置声明以下内容:

“在将ECS实例添加到群集之前,必须首先转到EC2管理控制台并创建ecs- optimized具有AmazonEC2ContainerServiceforEC2Role附加了策略的IAM角色的实例”

这是一个难题:

1.转到您的EC2仪表板,然后单击Launch Instance按钮。

2.在下Community AMIs,搜索ecs-optimized,然后选择最适合您的项目需求的一种。任何都可以。点击下一步。

3.当您进入配置实例详细信息时,单击,create new IAM role link然后创建一个名为的新角色ecsInstanceRole

4.将AmazonEC2ContainerServiceforEC2Role策略附加到该角色。

5.然后,完成ECS实例的配置。
注意: 如果要创建Web服务器,则需要创建一个securityGroup以允许访问端口80。

几分钟后,实例初始化并运行后,您可以刷新“ ECS实例”选项卡,您也尝试添加实例。

2020-06-17