登录
首页 >  Golang >  Go问答

AWS ECS SDK。使用SDK为ECS集群注册新的容器实例(EC2)

来源:stackoverflow

时间:2024-04-24 09:45:32 110浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《AWS ECS SDK。使用SDK为ECS集群注册新的容器实例(EC2)》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我在使用 aws sdk 时遇到了这个问题。目前我使用的是golang的sdk,但也欢迎其他语言的解决方案!

我有通过sdk创建的ecs集群

现在我需要为此集群添加 ec2 容器。我的问题是我无法使用 amazon ecs 代理通过配置指定集群名称:

1
2
#!/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 映像创建任务。

  • 在集群上手动运行或作为服务运行。

所以我:

  1. 通过 createcluster 方法创建了名为“test-cluster”的新集群。

  2. 通过 registertaskdefinition 创建新任务

  3. 使用 ecsinstancerole 角色和 ecs 优化的 ami 类型创建了新的 ec2 实例,这对于我所在的区域是正确的。 问题就从那里开始了。

实际结果:所有新的 ec2 实例已附加到“默认”集群(aws 创建了它并将实例附加到它)。 如果我使用 ecs 代理,我可以使用 ecs_cluster config env 指定集群名称。但我正在开发仅使用sdk的工具(没有任何使用ecs代理的能力)。 使用 registertaskdefinition 我无法指定集群,所以我的问题是,如何将新的 ec2 实例准确分配给指定的集群?

当我尝试通过 runtask 方法启动我的任务时(希望 aws 以某种方式为我创建实例或类似的东西),我收到一个错误:

1
InvalidParameterException: No Container Instances were found in your cluster.

解决方案


我实际上无法弄清楚你在问哪个问题。是否需要向集群添加容器,或者向集群添加实例?这些是非常不同的。

将实例添加到集群

这不是通过 ECS API 完成的,而是通过 EC2 API 通过使用正确的 ecsInstanceRole 创建 EC2 实例来完成的。有关详细信息,请参阅 Launching an Amazon ECS Container Instance 文档。

将容器添加到集群

这是通过定义任务定义,然后手动运行这些任务或作为服务来完成的。请参阅 Amazon ECS Task Definitions 了解更多信息。

以上就是《AWS ECS SDK。使用SDK为ECS集群注册新的容器实例(EC2)》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>