2017-10-12 139 views
0

我们可以添加标签到EC2实例,以帮助我们更好地跟踪计费用法和管理实例。标记ECS任务的最佳做法?

在ECS中部署容器时有办法实现吗?我希望正在运行的容器能够知道它当前附加的标签。

回答

1

这实际上取决于你最终试图在事后看到的东西。我会在下面分享一些非常规的想法,也许你可以推断这些想法来构建满足你需求的东西。


正如你可能知道,精英任务本身不支持标签的概念,但是有一些你可以考虑一些解决方法。例如,根据您记录应用程序行为的方式(例如,将日志批处理到CloudWatch Logs),可以为每个ECS任务创建一个包含分隔标签数组的日志流名称。

作为最近建立的POC的一部分,我使用自动生成的计算机名称来动态创建CloudWatch Log Stream名称。您可以轻松追加或预先嵌入您的容器图像中的标记数据,然后稍后从CloudWatch Log Streams中查询标记信息。


另一种选择是简单地记录一个度量指标的CloudWatch基于流失在ECR每一个独特的任务定义的ECS的任务数。

您可以构建一个非常简单的Lambda函数,在每个群集上查询您的ECS任务,并将每个唯一任务定义的任务计数以每分钟为单位写入CloudWatch指标。 CloudWatch事件规则允许您按cron时间表触发Lambda函数,因此您可以根据自己的喜好自定义时间段。

您可以使用此度量标准数据来帮助驱动关于ECS群集,在其上运行的服务和任务以及支持ECS群集的底层EC2计算实例的扩展决策。

希望这会有所帮助。

+0

感谢您的信息@Trevor它是有帮助的。我试图让用户以运行容器可以编程方式查询自己的“标签”的方式标记ECS任务。我猜想通过环境变量是实现这一目标的一种方式,但我发现环境变量方法并不像我希望的那样友好。 :) 感谢Trevor的信息!对此,我真的非常感激。 – cyc115