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