B -J`B/@sVddlmZmZmZmZmZ m Z m Z m Z m ZmZmZmZdZdZGdddejZdS)) core aws_lambdaaws_snsaws_sqsaws_ec2aws_lambda_event_sourcesaws_sns_subscriptionsaws_iamaws_s3aws_s3_notificationsaws_apigateway aws_kendraz$stdized-data/neptune_triples/nquads/ics@eZdZejeejejddfdd Z ddZ ddZ Z S) KnowledgeAnalyzerStackN)scopeidvpc lambda_sgreturnc shtj||f|||_tj||jdd|jd|_||_||_ t j ||jdd|jdd|_ t j|ddtjjt jjt jjtjjd d |_t j|d d tjjt jjtjjd d |_tj||jd|jdtjtjtjjdgtdgdgdtjj tjtjtjjddddgdgdgdddtjj tjtjtjjdgdgdddiidgdd dtjj tjtjtjjd!d"gd#tjj!d$tjjd%d&gdgdd'dtjj tjtjtjjd(d)d*gd#tjj!d$tjjd%d+gdgdd,dgd-|_"t#j$||jd.d/|jd0|j"j%d1|_&tj||jd2|jd2tdd3|_'|j'(tjtjjd4d5g|j&j%gd|j)|j't#j*||jd6|jd6|j&j+d7t#j*j,t#j*j-|jj.d8d9|j'j/d:|_0|j01d;dd?d@dAdBdidCdDtjjd$|j j6dEtjjidFdG|jj.idHdIgdJdK|_7dS)LNz-IAMROLE-ServiceRolez arn:aws:iam::z7:role/HEALTHLAKE-KNOWLEDGE-ANALYZER-IAMROLE-ServiceRolez-comprehendCompleteQueuei)Zvisibility_timeout queue_namezhl-synthea-exportzhl-synthea-export-%sT) bucket_nameblock_public_accessZ encryptionremoval_policyauto_delete_objectszhl-synthea-sourcezhl-synthea-source-%s)rrrrz-Kendra-ServiceRolezsts:AssumeRolezkendra.amazonaws.com)effectactionsZ principals)Z statementsz s3:GetObjectz s3:ListBucketzs3:GetBucketPublicAccessBlockzs3:GetEncryptionConfiguration*)rr resourcesZKendraAllowS3GetListObject)policy_documentZ policy_namezcloudwatch:PutMetricData StringEqualszcloudwatch:namespacez AWS/Kendra)rrr conditionsZKendraAllowMetricObjectzlogs:DescribeLogGroupszlogs:CreateLogGroupz arn:aws:logs::z :log-group:z /aws/kendra/*ZKendraAllowLogObjectzlogs:DescribeLogStreamszlogs:CreateLogStreamzlogs:PutLogEventsz/aws/kendra/*:log-stream:*ZKendraAllowLogStreamsObject) role_nameZassume_role_policy_documentZpoliciesz -KendraIndexZDEVELOPER_EDITIONz-HealthLakeNotes)Zeditionnamerole_arnz-KDSrc-ServiceRole)r!Z assumed_byzkendra:BatchPutDocumentzkendra:BatchDeleteDocumentz-Data-S3-HealthLakeZS3)r)Zs3_configuration)r"Zindex_idtypeZdata_source_configurationr#zDProperties.DataSourceConfiguration.S3Configuration.InclusionPrefixeszsource/Z QueuePolicyz 2008-10-17Z__default_policy_IDZ__owner_statementZAllowZAWSzSQS:SendMessagezarn:aws:sqs:us-east-1:zaws:SourceAccountz aws:SourceArnzarn:aws:s3:*:*:)rZArnLike)ZSidEffectZ PrincipalZActionResource Condition)ZVersionZIdZ Statement)Zqueuesr)8super__init__PREFIXr ZRoleZ from_role_arnaccount service_rolerrsqsZCfnQueuecomprehend_complete_sqs_s3ZBucketrAws ACCOUNT_IDZBlockPublicAccessZ BLOCK_ALLZBucketEncryptionZ S3_MANAGED RemovalPolicyDESTROYZs3exports3_locZCfnRoleZPolicyDocumentZPolicyStatementr%ZALLOWZServicePrincipalZPolicyPropertyREGIONZkendra_instance_rolekendraZCfnIndexattr_arnZ indexKendraZ kendra_data_source_instance_roleZ add_to_policyZ grant_readZ CfnDataSourceZattr_idZDataSourceConfigurationPropertyZ!S3DataSourceConfigurationPropertyrr#ZdatasourceKendra add_overridecreateLambdaFunctionssetLambdaTriggersZCfnQueuePolicyrefrZ queue_policy)selfrrrrkwargs) __class__Z/home/ec2-user/environment/knoma_healthlake/knowledge_analyzer/knowledge_analyzer_stack.pyr)s  .(  **        zKnowledgeAnalyzerStack.__init__cCstj||jdtjjgtjdd|jdd|_tj||jdtjjgtjdd|jdd|_tj||jdtjjgtjd d |jdd|_ tj ||jd tjjtjd d |jd dt j tdti|j|j|j |jg|j|jgd |_dS)Nz-lambdaHelperLayerz./assets/lambda_helperz"A Helper layer for supporting code)Zcompatible_runtimescode descriptionZlayer_version_namez-lambdaHelperNeptunez./assets/lambda_helper_neptunez-A Helper layer for generating neptune triplesz-lambdaHelperPandasSpacyz'./assets/lambda_helper_spacy/python.zipz1A Helper layer containing spacy, pandas and numpyz-genTriplesAndLoadNeptunez./assets/lambdaz'genTriplesAndLoadNeptune.lambda_handleriNEPTUNE_TRIPLES_FOLDER) runtimerAhandler function_name memory_sizetimeout environmentZroleZlayersrZsecurity_groups)_lambdaZ LayerVersionr*ZRuntimeZ PYTHON_3_7ZCodeassetZlambda_helper_baseZlambda_helper_neptuneZlambda_layer_spacyZFunctionrDurationsecondsEXECUTE_COMPREHEND_TIMEOUTrCr,rrgenerate_triples_lambda)r<r?r?r@r9s>          z,KnowledgeAnalyzerStack.createLambdaFunctionscCs:tj|d|jd|_|jt j |jdddS)NZCDKQueueArn)Z batch_size) r-ZQueueZfrom_queue_arnr.get_att to_stringZ sqs_queuerOZadd_event_sourcerZSqsEventSource)r<r?r?r@r:sz(KnowledgeAnalyzerStack.setLambdaTriggers) __name__ __module__ __qualname__r Constructstrec2ZVpcZ SecurityGroupr)r9r: __classcell__r?r?)r>r@rsL/rN)aws_cdkrrrJrZsnsrr-rrYrrr r r/r r Zapigtwr r6rCrNStackrr?r?r?r@s8