from aws_cdk import aws_iam as iam from aws_cdk import aws_lambda as _lambda from constructs import Construct class MyConstruct(Construct): def __init__(self, scope: Construct, id_: str) -> None: super().__init__(scope, id_) self.lambda_role = self._build_lambda_role() self.lambda_func = self._build_lambda_ecr(self.lambda_role) def _build_lambda_role(self) -> iam.Role: return iam.Role( self, 'myRole', assumed_by=iam.ServicePrincipal('lambda.amazonaws.com'), managed_policies=[iam.ManagedPolicy.from_aws_managed_policy_name(managed_policy_name=('service-role/AWSLambdaBasicExecutionRole'))], ) def _build_lambda_ecr(self, role: iam.Role) -> _lambda.DockerImageFunction: return _lambda.DockerImageFunction( self, 'EcrLambda', code=_lambda.DockerImageCode.from_image_asset(directory='.build/ecr'), role=role, memory_size=128, architecture=_lambda.Architecture.ARM_64, )