3 J1^%@sNddlmZmZmZmZmZm Z m Z m ZmZmZdZdZGdddejZdS)) coreaws_ec2aws_ecraws_ecsaws_ecs_patternsaws_ecr_assetsaws_logsaws_servicediscoveryaws_iam aws_sagemakerFcs(eZdZejeddfdd ZZS)DaskFargateStackN)scopeidreturnc stj||f|tjjddgd}tj|ddd}|j}tj |ddd}tj |d d d}t j |d t j d d } t j |d d t jddddddddgdgdgdj| } tj|d|dd} | jdtjj|d} tj|dtjjdd tjjd| d!| d" } | jd#|d$gd%d&tjjd'|d(d)d)d*tj|d+tjjdd tjjd| d,| d" }|jd-|d.d/d0d1d2d3gd%d&tjjd'|d(d)d)d*tj|d4|d5d6d7}tjjd8}tjjd8}|j |tj!tj"j#d9d:d;d<d=|j |tj!tj"j#d>d?d@d<d=tj$t%j&j'dAdBd!dC}tj(|dD| d&|| dEdFdGd!|dH }tj$t%j&j'dAdBd,dC}tj(|dI|d&|| dEdFdGd,|dH }t j |dJt j dKd }t j |dLdLt jddMgdgdgdj|}t)j*|dNdOdP|j+g|dQj,dN|j-dRdRdSdT }dS)UNZ dockerstuffz -t dask .) directory build_argsZMyVpc)Zmax_azsZ SlogGroup)Zlog_group_nameZ WlogGroupZECSExecutionRolez ecs-tasks)Z assumed_byZECSExecutionPolicyzecr:BatchCheckLayerAvailabilityzecr:GetDownloadUrlForLayerzecr:BatchGetImagezecr:GetAuthorizationTokenzlogs:CreateLogStreamzlogs:PutLogEventsz sagemaker:*zs3:**)ZactionsZ resources)Z policy_nameZ statementsZ DaskClusterzFargate-Dask-Cluster)vpcZ cluster_namez local-dask)nametyperZtaskDefinitionSchedulerZ4096Z8192zDask-Scheduler)Z compatibilitycpuZ memory_mibZ network_modeZplacement_constraintsZexecution_roleZfamilyZ task_roleZMySchedulerImagezdask-scheduleriTecs)Z stream_prefixZ log_groupi )ZimageZcommandrZ essentialZloggingZmemory_limit_mibZmemory_reservation_mibZtaskDefinitionWorkerz Dask-WorkerZ MyWorkerImagez dask-workerzdask-scheduler.local-dask:8786z--memory-limit 1800MBz--worker-port 9000z--nanny-port 9001z--bokeh-port 9002ZMySGzEnable Scheduler ports accessZDaskSecurityGroup)r descriptionZsecurity_group_namez 0.0.0.0/0p1iR"iU")protocolZstring_representationZ from_portZto_port)ZpeerZ connectionp2i(#i*#< )Zdns_ttlZfailure_thresholdrZDaskSchedulerServiced) Ztask_definitionZassign_public_ipZsecurity_groupclusterZ desired_countZmax_healthy_percentZmin_healthy_percentZ service_nameZcloud_map_optionsZDaskWorkerServiceZnotebookAccessRoleZ sagemakerZnotebookAccessPolicyzecs:*Z DaskNotebookz ml.t2.medium2rZEnabledz,https://github.com/w601sxs/dask-examples.git) Z instance_typeZvolume_size_in_gbZsecurity_group_ids subnet_idZnotebook_instance_namerole_arnZ root_accessZdirect_internet_accessZdefault_code_repository).super__init__rZContainerImageZ from_assetec2ZVpcZprivate_subnetslogsZLogGroupiam_ZRoleZServicePrincipalZPolicyZPolicyStatementZattach_to_roleZClusterZadd_default_cloud_map_namespacesdZ NamespaceTypeZ DNS_PRIVATEZTaskDefinitionZ CompatibilityZFARGATEZ NetworkModeZAWS_VPCZ add_containerZ LogDriverrZ SecurityGroupZPeerZipv4Zadd_ingress_ruleZPortProtocolZTCPZCloudMapOptionsrDurationsecondsZFargateService sagemaker_ZCfnNotebookInstanceZsecurity_group_idr$r%)selfr rkwargsZdockercontainerrZsubnetsZs_logsZw_logsZnRoleZnPolicyr"ZnspaceZ schedulerTaskZ workerTaskZsgrrZcmap1ZschedulerServiceZcmap2Z workerServiceZsmRoleZsmPolicyZnotebook) __class__f/Users/subshrey/Projects/amazon-sagemaker-cdk-examples/dask-fargate/dask_fargate/dask_fargate_stack.pyr' s        zDaskFargateStack.__init__)__name__ __module__ __qualname__r Constructstrr' __classcell__r3r3)r2r4r sr N)aws_cdkrrr(rrrrZ ecs_patternsrZ ecr_assetsrr)r r+r r*r r/Z use_rapidsZ use_notebookStackr r3r3r3r4s0