#.net #asp.net-core #logging #amazon-ecs #amazon-cloudwatch
Вопрос:
У меня есть приложение, написанное на .NET Core 3.1, докеризованное и развернутое в AWS ECS. Мое определение задачи настроено для отправки журналов в CloudWatch.
Независимо от того, что я делаю, я не могу настроить ведение журнала в своем приложении для отправки пользовательских журналов.
Program.cs
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging(o =>
{
o.AddAWSProvider();
o.SetMinimumLevel(LogLevel.Debug);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
MyService.cs
[ServiceContract]
public class HealthCheckService
{
private readonly ILogger<HealthCheckService> _logger;
public HealthCheckService(ILogger<HealthCheckService> logger)
{
_logger = logger;
}
[OperationContract]
public string HealthCheck(string input)
{
_logger.LogInformation("test from health check");
return input;
}
}
Конечная точка службы работает. Я могу позвонить туда и получить хороший ответ. Но в CloudWatch я не вижу ничего, кроме тех же нескольких основных журналов.
Разве ведение журнала не должно быть глупо простым? Возможно, так оно и есть, и мне просто должно быть очень плохо о себе…
Ответ №1:
- Проверьте, имеет ли ваша задача достаточные разрешения для записи в журналы CloudWatch. Роль, которая управляет вашими разрешениями, — это роль задачи (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)
Я тестирую политику CloudWatchFullAccess
- Проверьте, находитесь ли вы в правильном регионе. Моя конфигурация выглядит следующим образом(https://github.com/aws/aws-logging-dotnet#aspnet-core-logging)
"Logging": { "IncludeCategory": true, "IncludeEventId": false, "IncludeException": true, "IncludeLogLevel": true, "IncludeNewline": true, "IncludeScopes": false, "LogGroup": "AspNetCore.WebSample", "LogLevel": { "Default": "Debug", "System": "Information", "Microsoft": "Information" }, "Region": "eu-central-1" }
Мои журналы облачных часов находятся в Европе (Франкфурт) eu-central-1
Ничто не бывает так просто, как должно быть, так что не волнуйтесь, если с первого раза что-то не получится.
Комментарии:
1. Спасибо, не хватало роли задачи с соответствующими разрешениями.