-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
43 lines (36 loc) · 1.56 KB
/
main.py
File metadata and controls
43 lines (36 loc) · 1.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from azure.identity import DefaultAzureCredential
from azure.monitor.opentelemetry import configure_azure_monitor
from fastapi import FastAPI
from wirio import ServiceCollection
from python_template.api.application_settings import ApplicationSettings
from python_template.api.service_collection_extensions import (
add_logging,
)
from python_template.api.services.email_service import EmailService
from python_template.api.workflows.products.discontinue_product.discontinue_product_workflow import (
DiscontinueProductWorkflow,
)
from python_template.api.workflows.products.product_router import product_router
from python_template.api.workflows.products.publish_product.publish_product_workflow import (
PublishProductWorkflow,
)
app = FastAPI()
app.include_router(product_router)
services = ServiceCollection()
services.configure_fastapi(app)
if not services.environment.is_local():
services.settings.add_azure_key_vault(
services.settings.get_required_value("key_vault_url")
)
application_settings = services.settings.get_model(ApplicationSettings)
add_logging(services, application_settings.logging_level)
if not services.environment.is_local():
configure_azure_monitor(
connection_string=application_settings.application_insights_connection_string,
credential=DefaultAzureCredential(),
enable_live_metrics=True,
)
services.add_sqlmodel(application_settings.postgresql_connection_string)
services.add_transient(EmailService)
services.add_transient(PublishProductWorkflow)
services.add_transient(DiscontinueProductWorkflow)