private void CreateContainerDefinition(EcsTaskDefinitionOptions definitionOptions, TaskDefinition taskDefinition) { foreach (var containerDef in definitionOptions.Containers) { var ecr = StackResources.EcrRepositories.FirstOrDefault(ecr => ecr.Key == containerDef.RepositoryId); if (ecr.Key == null || ecr.Value == null) { throw new ArgumentException("Please add a ECR definition option properly set up on your json configuration. No task definition could not be added."); } var portMapping = new List <PortMapping>(); if (containerDef.TCPPortMapping?.Any() == true) { foreach (var ports in containerDef.TCPPortMapping) { portMapping.Add(new PortMapping { ContainerPort = ports.ContainerPort, HostPort = ports.HostPort, Protocol = Amazon.CDK.AWS.ECS.Protocol.TCP }); } } var containerDefinitionProps = new ContainerDefinitionProps { TaskDefinition = taskDefinition, Image = ContainerImage.FromEcrRepository(ecr.Value, containerDef.ImageTag), MemoryLimitMiB = containerDef.MemoryLimitMiB, Cpu = containerDef.CpuUnits, StartTimeout = Duration.Minutes(containerDef.StartTimeOutMinutes), PortMappings = portMapping.ToArray(), Environment = containerDef.EnvironmentVariables, DnsServers = containerDef.DnsServers?.ToArray() }; var container = AwsCdkHandler.CreateContainerDefinitionByProps(containerDef.Id, containerDefinitionProps); if (definitionOptions.MountPoints?.Any() == true) { var mountPoints = new List <MountPoint>(); foreach (var mountPointOption in definitionOptions.MountPoints) { mountPoints.Add(new MountPoint { SourceVolume = mountPointOption.SourceVolume, ContainerPath = mountPointOption.ContainerPath }); } container.AddMountPoints(mountPoints.ToArray()); } } }