def create_services()

in multipagepdfa2i/multipagepdfa2i_stack.py [0:0]


    def create_services(self):
        services = {}
        # S3 bucket
        services["main_s3_bucket"] = aws_s3.Bucket(self, "multipagepdfa2i", removal_policy=core.RemovalPolicy.DESTROY)
        self.configure_dynamo_table("multia2ipdf_callback", "jobid", "callback_token")

        services["sf_sqs"] = aws_sqs.Queue(
            self, "multipagepdfa2i_sf_sqs",
            queue_name = "multipagepdfa2i_sf_sqs",
            visibility_timeout=core.Duration.minutes(5)
        )

        services["textract_sqs"] = aws_sqs.Queue(
            self, "multipagepdfa2i_textract_sqs",
            queue_name = "multipagepdfa2i_textract_sqs",
            visibility_timeout=core.Duration.minutes(3)
        )
        

        services["lam_roles"] = self.create_iam_role_for_lambdas()
        services["lambda"] = self.create_lambda_functions(services)

        services["sf"] = self.create_state_machine(services)

        # need to creak kick off here so we can pass the state machine arn...
        services["lambda"]["kickoff"] = aws_lambda.Function(
                scope=self,
                id="multipagepdfa2i_kickoff",
                function_name="multipagepdfa2i_kickoff",
                code=aws_lambda.Code.from_asset("./deploy_code/multipagepdfa2i_kickoff/"),
                handler="lambda_function.lambda_handler",
                runtime=aws_lambda.Runtime.PYTHON_3_8,
                timeout=core.Duration.minutes(5),
                memory_size=3000,
                role=services["lam_roles"]["kickoff"],
                environment= {
                    "sqs_url": services["sf_sqs"].queue_url,
                    "state_machine_arn": services["sf"].state_machine_arn
                }
        )

        return services