问题描述
我有一个 ECS 集群、一个活动的服务和这个服务的任务。我正在尝试使用 Ruby AWS SDK 调用 ListTasks
。
当没有活动任务时,正如预期的那样,它会出现一个空列表。但是当有一个正在运行的任务时,我得到了 Aws::ECS::Errors::ClusterNotFoundException
。
我尝试调用 ListClusters
,并得到了成功的响应:
{:cluster_arns=>["arn:aws:ecs:<region>:<account_num>:cluster/<cluster_name>"],:next_token=>nil}
。
我也尝试调用 DescribeServices
,也得到了成功的响应:{:clusters=>[{:cluster_arn=>"arn:aws:ecs:<region>:<account_num>:cluster/<cluster_name>",:cluster_name=>"<cluster_name>",:status=>"ACTIVE",:registered_container_instances_count=>0,:running_tasks_count=>1,:pending_tasks_count=>0,:active_services_count=>1,:statistics=>[],:tags=>[],:settings=>[{:name=>"containerInsights",:value=>"enabled"}],:capacity_providers=>["FARGATE_SPOT","FARGATE"],:default_capacity_provider_strategy=>[{:capacity_provider=>"FARGATE",:weight=>1,:base=>0}],:attachments=>nil,:attachments_status=>nil}],:failures=>[]}
。
此外,我定期为同一个集群名称成功调用 DescribeServices
和 UpdateService
。
但是 ListTasks
的错误仍然存在。
有没有人遇到过类似的情况?你认为发生了什么?
@@ecs_client = Aws::ECS::Client.new(
region: Aws.config[:region],access_key_id: Aws.config[:credentials].access_key_id,secret_access_key: Aws.config[:credentials].secret_access_key
)
...
tasks = @@ecs_client.list_tasks({ cluster: '<cluster_name>' })
解决方法
如果您在调用“ListTasks”API 时未指定集群,则假定为“默认”集群。另外,请仔细检查脚本中使用的区域。