U Vlc @stddlmZmZmZmZmZmZmZ m Z m Z mZmZmZmZmZmZmZddlmZddlmZGdddeZ dS))AwsDurationStack RemovalPolicy CfnOutputaws_s3aws_s3_deploymentcustom_resourcesaws_glueaws_iam aws_lambda aws_dynamodb aws_kinesisaws_logs aws_eventsaws_events_targets) Construct)Pathcs&eZdZeeddfdd ZZS)IngestionStackN)scope construct_idreturnc sJtj||f|tj|ddt|||d} tj|ddtjdtj j d|t j d} t j|dt d t jjgd } tj|d tjtd d } t j|dt jjddt dd| gd| jdtd d } | | | | | t| tj|dtj j!dtj"j#t j dd}t$j%|d|t$j&'t(t)t*j+j+,dgdt-j.|dt-j.j/ddddd d!}t-j0|d"t1j2t-j0j3|d#d$}|j4t j d%t5j6|d&t57d't5j89d(gd)}||t-j:|d*t-j:j;t-j:j<|j=d+gd,||j>|j?gd-}t@jA|d.t@jBd/d0d1|j?it@jCDd2d3t@jEjFt@jEjGd4d5}| |_H||_ItJ|d6|j=d7d8dS)9Nconsignment_stream) stream_nameretention_period stream_mode encryptionTableZ latest_keyid)nametype) table_name partition_key billing_moderemoval_policyz lambda-layerz lambda/layer/)codecompatible_runtimesZ StepTrigger<)schedulez order-lambdaz-Lambda function deployed using AWS CDK Pythonz./lambda/code/orderzorder_producer.lambda_handlerINFO)Z LOG_LEVELZ STREAM_NAME)runtime function_name descriptionr%handlerlayers environmenttimeoutZs3_rawFT)rpublic_read_accessblock_public_accessr$auto_delete_objectsZ s3_deploy_rawz assets/data)destination_bucketsourcesZcsv_ClassifierZPRESENT,")allow_single_columncontains_header delimiter quote_symbol)csv_classifierdatabase)r) catalog_iddatabase_input)policy crawler_rolezglue.amazonaws.comzservice-role/AWSGlueServiceRole) assumed_bymanaged_policies crawler_raw)path) s3_targets)targets database_namerole classifiersz aws-customZGlueZ startCrawlerNameZphysicalResourceStateMachine)serviceaction parametersphysical_resource_id) resources) on_updater@ZS3BucketOutputz S3 Bucket)valuer,)Ksuper__init___kinesisStreamrhours _dynamodbr Attribute AttributeTypeNUMBERrDESTROY_lambda LayerVersion AssetCodeRuntime PYTHON_3_8_eventsRuleScheduleratesecondsFunctionrgrant_read_writegrant_read_write_data add_target_events_targetsLambdaFunction_s3BucketBucketEncryption S3_MANAGEDBlockPublicAccess BLOCK_ALL _s3_deployBucketDeploymentSourceassetstrr__file__parentjoinpath_glue CfnClassifierCsvClassifierProperty CfnDatabaser ACCOUNT_IDDatabaseInputPropertyapply_removal_policy_iamRoleServicePrincipal ManagedPolicyfrom_aws_managed_policy_name CfnCrawlerTargetsPropertyS3TargetProperty bucket_name role_nameref_crAwsCustomResource AwsSdkCallPhysicalResourceIdofAwsCustomResourcePolicyfrom_sdk_calls ANY_RESOURCEr s3_bucket_rawr)selfrrglue_database_namekinesis_retention_periodkinesis_stream_modekinesis_encryptiondynamodb_billing_modekwargsrZdynamodb_tableZ lambdaLayerZ step_triggerZ order_lambdarr<r=rArDZ aws_custom __class__\/home/ec2-user/blog/amazon-redshift-streaming-workshop/redshift_streaming/ingestion_stack.pyrTs           zIngestionStack.__init__)__name__ __module__ __qualname__rrwrT __classcell__rrrrrsrN)!aws_cdkrrrrrrrmrrsr rr r{r rr r]r rXrrUrZ_logsrrbrrk constructsrpathlibrrrrrrsH