AWS ECS CLI执行describe-tasks未返回capacityProviderName问题
问题根因
capacityProviderName 字段仅在任务通过ECS集群的容量提供商调度启动时,才会出现在describe-tasks接口的返回结果中。从你提供的无过滤接口返回可以看到,当前任务是直接指定launchType: FARGATE启动,没有关联容量提供商调度逻辑,因此返回结果中不存在该字段,JMESPath查询时就会返回None。
补充说明
Fargate Spot类型的任务必须通过容量提供商配置调度,你当前所有返回launchType: FARGATE的任务均为标准Fargate类型。
解决方案
如果需要查询到capacityProviderName字段,你需要调整ECS服务的启动配置,将直接指定Launch Type的方式改为使用容量提供商策略调度,后续新启动的任务就会携带该字段。
如果仅需要确认现有任务的启动类型,可以修改JMESPath查询语句,直接取launchType字段值即可,修改后的命令如下:
aws ecs describe-tasks --cluster ab-demo-cluster \ --tasks \ $(aws ecs list-tasks --cluster ab-demo-cluster --query 'taskArns[]' --output text) \ --query 'sort_by(tasks,&availabilityZone)[].{ Id: taskArn, AZ: availabilityZone, LaunchType: launchType }' \ --output table
内容的提问来源于stack exchange,提问作者indche
相关产品推荐
相关产品推荐

