我正在尝试使用 --- 将 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 实例开始的!!
原文由 cosbor11 发布,翻译遵循 CC BY-SA 4.0 许可协议
经过几个小时的调查,我发现了这一点。亚马逊,如果您正在收听,您应该在创建集群或向集群添加实例时在管理控制台的某处说明这一点:
这是繁琐的:
1. 转到您的 EC2 仪表板,然后单击
Launch Instance
按钮。2. 在
Community AMIs
下,搜索ecs-optimized
,然后选择最适合您项目需求的那个。任何都会起作用。点击下一步。3. 当您进入配置实例详细信息时,单击
create new IAM role link
并创建一个名为ecsInstanceRole
的新角色。4. 将
AmazonEC2ContainerServiceforEC2Role
策略附加到该角色。5. 然后,完成配置您的 ECS 实例。
注意: 如果您正在创建 Web 服务器,您将需要创建一个安全组以允许访问端口 80。
几分钟后,当实例初始化并运行时,您可以刷新您也尝试添加实例的 ECS 实例选项卡。