Ошибочный Aws::ECS::Ошибки::Исключение ClusterNotFoundException — что происходит?

#amazon-web-services #aws-sdk #amazon-ecs #aws-sdk-ruby

Вопрос:

У меня есть кластер ECS, активная служба для него и задача для этой службы. Я пытаюсь позвонить ListTasks с помощью Ruby AWS SDK.

Когда активной задачи нет, она, как и ожидалось, выводится с пустым списком. Но когда есть запущенная задача, я получаю 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 .

Кто-нибудь сталкивался с чем-то подобным? Как вы думаете, что происходит?

UPD Код, который генерирует ошибку:

 @@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>' })
 

Комментарии:

1. Что это за код, который генерирует ошибку?

2. Обновил вопрос.

Ответ №1:

Если вы не указываете кластер при вызове API «ListTasks», предполагается кластер «по умолчанию». Кроме того, дважды проверьте регион, используемый в вашем сценарии.

Комментарии:

1. Мой код tasks = @@ecs_client.list_tasks({ cluster: '<cluster_name>' }) , взял его из документов. Регион , через который я прохожу Aws.config[:region] , и он везде одинаков, также кластер находится в том же регионе, что и все остальное.