def workmail_integration_lambda()

in stacks/email_automation_workflow_stack.py [0:0]


    def workmail_integration_lambda(self, classification_lambda):
        
        workmail_lambda = lambda_.Function(
            self, "id_workmail_integration_lambda_lambda_fn", 
            function_name="workmail-integration-lambda-fn",
            code = lambda_.Code.from_asset(path.join("./lambda", "workmail-integration-lambda")),
            handler = "lambda_function.lambda_handler",
            runtime = lambda_.Runtime.PYTHON_3_8,
            timeout = core.Duration.minutes(1),
            environment={
                "EMAIL_CLASSIFICATION_LAMBDA_FN_NAME" : classification_lambda.function_name
            }
        )
        
        current_region = self.region
        
        principal = iam.ServicePrincipal("workmail.{}.amazonaws.com".format(current_region))
        
        workmail_lambda.grant_invoke(principal)
        
        workmail_lambda.add_to_role_policy(
            iam.PolicyStatement(
                        actions = [
                            "workmailmessageflow:GetRawMessageContent",
                        ],
                        resources= [ '*' ]
                    )
            
        )
        
        classification_lambda.grant_invoke(workmail_lambda)
        
        return workmail_lambda