Я пытаюсь войти в систему из FastAPI, чтобы получить информацию о приложениях Azure. Он работает со строкой подключения, но я бы хотел, чтобы он работал с управляемым удостоверением. Приведенный ниже код не дает сбоя — никаких ошибок или чего-то еще. Но он ничего не регистрирует. Любые предложения по решению проблемы или способы ее устранения, поскольку ошибок не возникает:
from fastapi import FastAPI,Request
from fastapi.middleware.cors import CORSMiddleware
from fastapi_azure_auth import SingleTenantAzureAuthorizationCodeBearer
import uvicorn
from fastapi import FastAPI, Security
import os
from typing import Dict
from azure.identity import DefaultAzureCredential
import logging
from azure.monitor.opentelemetry import configure_azure_monitor
from opentelemetry import trace,metrics
from settings import Settings
from pydantic import AnyHttpUrl,BaseModel
from contextlib import asynccontextmanager
from typing import AsyncGenerator
from fastapi_azure_auth.user import User
settings = Settings()
@asynccontextmanager
async def lifespan(app: FastAPI) -> AsyncGenerator[None, None]:
"""
Load OpenID config on startup.
"""
await azure_scheme.openid_config.load_config()
yield
app = FastAPI(
swagger_ui_oauth2_redirect_url='/oauth2-redirect',
swagger_ui_init_oauth={
'usePkceWithAuthorizationCodeGrant': True,
'clientId': settings.OPENAPI_CLIENT_ID,
'scopes': settings.SCOPE_NAME,
},
)
if settings.BACKEND_CORS_ORIGINS:
app.add_middleware(
CORSMiddleware,
allow_origins=[str(origin) for origin in settings.BACKEND_CORS_ORIGINS],
allow_credentials=True,
allow_methods=['*'],
allow_headers=['*'],
)
azure_scheme = SingleTenantAzureAuthorizationCodeBearer(
app_client_id=settings.APP_CLIENT_ID,
tenant_id=settings.TENANT_ID,
scopes=settings.SCOPES,
)
class User(BaseModel):
name: str
roles: list[str] = []
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
credential = DefaultAzureCredential()
configure_azure_monitor(
credential=credential,
connection_string="InstrumentationKey=xx-xx-xx-xx-xx"
)
@app.get("/log", dependencies=[Security(azure_scheme)])
async def root():
print("Yo test")
logger.info("Segato5", extra={"custom_dimension": "Kam_value","test1": "val1"})
meter = metrics.get_meter_provider().get_meter(__name__)
counter = meter.create_counter("segato2")
counter.add(8)
return {"whoIsTheBest": "!!"}
if __name__ == '__main__':
uvicorn.run('main:app', reload=True)
Подробнее здесь: https://stackoverflow.com/questions/793 ... d-identity
Запись в аналитику приложений из FastAPI с управляемой идентификацией ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение