aws / jsii

jsii allows code in any language to naturally interact with JavaScript classes. It is the technology that enables the AWS Cloud Development Kit to deliver polyglot libraries from a single codebase!
https://aws.github.io/jsii
Apache License 2.0
2.59k stars 242 forks source link

aws_ecs.Ec2TaskDefinition : add_container function isn't working properly #4519

Open keeratg opened 1 month ago

keeratg commented 1 month ago

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

Screenshot 2024-05-19 at 9 17 00 PM

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:

Screenshot 2024-05-19 at 9 25 08 PM

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

ashishdhingra commented 1 month ago

@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):

Thanks, Ashish