diff --git a/changelogs/fragments/2124-add-retry-to-ecs_taskdefinition.yml b/changelogs/fragments/2124-add-retry-to-ecs_taskdefinition.yml new file mode 100644 index 00000000000..cd03aab2d41 --- /dev/null +++ b/changelogs/fragments/2124-add-retry-to-ecs_taskdefinition.yml @@ -0,0 +1,2 @@ +bugfixes: + - ecs_taskdefinition - avoid throttling exceptions on task definitions with a large number of revisions by using the retry mechanism (https://github.com/ansible-collections/community.aws/issues/2123). diff --git a/plugins/modules/ecs_taskdefinition.py b/plugins/modules/ecs_taskdefinition.py index 25a786e4f4c..9f8871def49 100644 --- a/plugins/modules/ecs_taskdefinition.py +++ b/plugins/modules/ecs_taskdefinition.py @@ -916,7 +916,7 @@ def fetch(): if data["nextToken"]: params["nextToken"] = data["nextToken"] - result = self.ecs.list_task_definitions(**params) + result = self.ecs.list_task_definitions(aws_retry=True, **params) data["taskDefinitionArns"] += result["taskDefinitionArns"] data["nextToken"] = result.get("nextToken", None) return data["nextToken"] is not None @@ -929,7 +929,7 @@ def fetch(): return list( sorted( [ - self.ecs.describe_task_definition(taskDefinition=arn)["taskDefinition"] + self.ecs.describe_task_definition(aws_retry=True, taskDefinition=arn)["taskDefinition"] for arn in data["taskDefinitionArns"] ], key=lambda td: td["revision"], @@ -937,7 +937,7 @@ def fetch(): ) def deregister_task(self, taskArn): - response = self.ecs.deregister_task_definition(taskDefinition=taskArn) + response = self.ecs.deregister_task_definition(aws_retry=True, taskDefinition=taskArn) return response["taskDefinition"]