Запись в аналитику приложений из FastAPI с управляемой идентификациейPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Запись в аналитику приложений из FastAPI с управляемой идентификацией

Сообщение Anonymous »

Я пытаюсь войти в систему из 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»