当前位置: > > > > AWS ECS SDK。使用SDK为ECS集群注册新的容器实例(EC2)
来源:stackoverflow
2024-04-24 09:45:32
0浏览
收藏
有志者,事竟成!如果你在学习Golang,那么本文《AWS ECS SDK。使用SDK为ECS集群注册新的容器实例(EC2)》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~
问题内容
我在使用 aws sdk 时遇到了这个问题。目前我使用的是golang的sdk,但也欢迎其他语言的解决方案!
我有通过sdk创建的ecs集群
现在我需要为此集群添加 ec2 容器。我的问题是我无法使用 amazon ecs 代理通过配置指定集群名称:
#!/bin/bash echo ecs_cluster=your_cluster_name >> /etc/ecs/ecs.config
或者类似的东西。 我只能使用 sdk。
我找到了名为 registercontainerinstance 的方法。
但它有注释:
此操作仅由 amazon ecs 代理使用,而不是由 amazon ecs 代理使用。 旨在在代理之外使用。
它看起来不像有效的解决方案。
我需要了解如何(如果可能)仅创建工作 ecs 集群
using sdk。
更新: 我的主要目标是需要从 docker 映像启动指定数量的服务器。 当我调查这项任务时,我发现我需要:
-
创建ecs集群
-
为其分配所需的 ec2 实例数量。
-
使用我的 docker 映像创建任务。
-
在集群上手动运行或作为服务运行。
所以我:
-
通过 createcluster 方法创建了名为“test-cluster”的新集群。
-
通过 registertaskdefinition 创建新任务
-
使用 ecsinstancerole 角色和 ecs 优化的 ami 类型创建了新的 ec2 实例,这对于我所在的区域是正确的。 问题就从那里开始了。
实际结果:所有新的 ec2 实例已附加到“默认”集群(aws 创建了它并将实例附加到它)。 如果我使用 ecs 代理,我可以使用 ecs_cluster config env 指定集群名称。但我正在开发仅使用sdk的工具(没有任何使用ecs代理的能力)。 使用 registertaskdefinition 我无法指定集群,所以我的问题是,如何将新的 ec2 实例准确分配给指定的集群?
当我尝试通过 runtask 方法启动我的任务时(希望 aws 以某种方式为我创建实例或类似的东西),我收到一个错误:
InvalidParameterException: No Container Instances were found in your cluster.
解决方案
我实际上无法弄清楚你在问哪个问题。是否需要向集群添加容器,或者向集群添加实例?这些是非常不同的。
将实例添加到集群
这不是通过 ECS API 完成的,而是通过 EC2 API 通过使用正确的 ecsInstanceRole 创建 EC2 实例来完成的。有关详细信息,请参阅 文档。
将容器添加到集群
这是通过定义任务定义,然后手动运行这些任务或作为服务来完成的。请参阅 了解更多信息。
以上就是《AWS ECS SDK。使用SDK为ECS集群注册新的容器实例(EC2)》的详细内容,更多关于的资料请关注公众号!