aws_ecs.Ec2TaskDefinition : add_container function isn't working properly
Describe the bug
As shown in the image below when I call the add_container function a Ec2TaskDefinition I get the following error: TypeError: add_container() got an unexpected keyword argument 'memory_limit_mi_b'. I checked the documentation and I am calling it correctly with the right parameters.
Documentation:https://docs.aws.amazon.com/cdk/api/v2/python/aws_cdk.aws_ecs/Ec2TaskDefinition.html
Expected Behavior
I expect it to add a container with the given memory_limit_mi_b value
Current Behavior
Currently, it is giving me an error when I try to deploy.
Error image:
Reproduction Steps
task_definition = ecs.Ec2TaskDefinition(self, "TaskDef")
task_definition.add_container("TheContainer",
image=ecs.ContainerImage.from_registry("example-image"),
memory_limit_mi_b=256,
)
Possible Solution
No response
Additional Information/Context
No response
CDK CLI Version
2.142.1 (build ed4e152)
Framework Version
No response
Node.js Version
v22.2.0
OS
MacOS
Language
Python
Language Version
Python 3.8.2
Other information
No response
@keeratg Good morning. Upon developing the sample in Python, this appears to be a documentation issue. Example code below:
from aws_cdk import (
# Duration,
Stack,
aws_ecs as ecs,
)
from constructs import Construct
class PythonStack(Stack):
def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
super().__init__(scope, construct_id, **kwargs)
# The code that defines your stack goes here
# example resource
taskDefinition = ecs.TaskDefinition(self, "TaskDef", compatibility=ecs.Compatibility.EC2)
taskDefinition.add_container("TheContainer",
image=ecs.ContainerImage.from_registry("example-image"),
memory_limit_mib=256
)
I see 2 issues with the example at https://docs.aws.amazon.com/cdk/api/v2/python/aws_cdk.aws_ecs/Ec2TaskDefinition.html (the issues are easily caught by running cdk synth command, we do not need to deploy the stack):
- The property is named
memory_limit_mib(notmemory_limit_mi_b). This is also supported if you look at theadd_container()parameter list in the above documentation where is lists the correct parameter namedmemory_limit_mib. - When we use code
ecs.TaskDefinition(self, "TaskDef")while definingTaskDefinition,cdk synthfails with errorTypeError: TaskDefinition.__init__() missing 1 required keyword-only argument: 'compatibility'. So looks like the example also needs to be updated to specifycompatibility.
Thanks, Ashish