当前遇到AWS ECS工具的怪异行为。
使用aws-cli和Web仪表板时,我发现两种不同的行为。
上下文是我建立了一个ECS集群,我正在编写一个脚本,该脚本通过(其中包括)创建或更新ECS服务来自动执行部署。
我的脚本的一部分使用命令aws ecs describe-services
在这里,我找到的信息不同于仪表板(在集群页面上)。
实际上是在创建服务时运行的,如果运行,则是ACTIVE
:
aws ecs describe-services --services my_service --cluster my_cluster
该服务将显示为我需要解析的所有信息的输出。它也将以ACTIVE
的形式显示在网络仪表板上。
问题是当我从仪表板上删除服务时。正如预期的那样,它已从列表中删除,我最终可以从仪表板中重新创建一个同名的
。但是,如果删除该服务,则重新运行上面的命令,输出将显示该服务为INACTIVE
,并且有关先前删除的服务的所有信息仍然会出现。
如果服务被删除,该命令不应将服务返回为MISSING
:
{
"services": [],
"failures": [
{
"reason": "MISSING",
"arn": "arn:aws:ecs:<my_regions>:<my_id>:service/my_service"
}
]
}
因为这会使脚本中的解析变得复杂,并且即使我可以找到解决方法(即使INACTIVE
而不是不存在,也可能尝试创建服务),但即使删除了,还是有点奇怪服务仍然在这里,在某个地方,弄乱了我的堆栈。
编辑:我正在使用aws-cli的最新版本
答案 0 :(得分:1)
这是aws提供的默认行为。请检查以下文档:
删除服务时,如果仍有正在运行的任务需要清除,则服务状态将从ACTIVE变为DRAINING,并且该服务在控制台或ListServices API操作中不再可见。任务停止后,服务状态将从DRAINING变为INACTIVE。仍可以使用DescribeServices API操作查看处于DRAINING或INACTIVE状态的服务。但是,
in the future, INACTIVE services may be cleaned up and purged from Amazon ECS record keeping
和这些服务上的DescribeServices API操作将返回ServiceNotFoundException错误。