Tenho uma webapi hospedada no Azure App Service, ela tem identidade gerenciada e há um Application Insights existente que deu permissão de leitor para essa API hospedada.
No AppInsights, uma nova função foi atribuída e uma permissão de leitor foi concedida à API. Agora quero que a API leia dados do AppInsights.
Quero adicionar um método C# como uma API REST que lê os últimos 10 rastreamentos?
// Use DefaultAzureCredential to authenticate with Managed Identity
var credential = new DefaultAzureCredential();
// Create a LogsQueryClient
var client = new LogsQueryClient(credential);
// Replace this with your Application Insights resource ID
string appInsightsResourceId = "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/microsoft.insights/components/{applicationInsightsName}";
// KQL query to get the last 10 traces
string kqlQuery = "traces | order by timestamp desc | take 10";
// Execute the query
Response<LogsQueryResult> queryResponse = await client.QueryWorkspaceAsync(
appInsightsResourceId,
kqlQuery,
new QueryTimeRange(TimeSpan.FromHours(1))
);
Não funcionou, ele retorna com credenciais de token inválidas.
Também tentei usar DefaultAzureCredentials
o valor ManagedClientID, mas ainda não funcionou. Quero obter dados de logs/rastreamentos como um método http.