Роль экземпляра AWS.Logger.AspNetCore EC2 - PullRequest
0 голосов
/ 04 марта 2019

Я пытаюсь использовать AWS CloudWatch Logs в качестве места назначения для ведения журналов в моем приложении ASP.NET Core.Я использую официальный пакет AWS NuGet AWS.Logger.AspNetCore.

Я создал роль IAM со следующей политикой и прикрепил ее к своему экземпляру EC2:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogGroups"
      ],
      "Resource": [
        "arn:aws:logs:*:*:*"
      ]
    }
  ]
}

В своем appsettings.json я добавил следующее:

{
  "AWS.Logging": {
    "Region": "ap-southeast-2",
    "LogGroup": "<my app>",
    "LogLevel": {
      "Default": "Warning",
      "System": "Warning",
      "Microsoft": "Warning"
    }
  }
}

В моем файле Startup.cs я добавил следующее в метод Configure:

loggerFactory.AddAWSProvider(this.Configuration.GetAWSLoggingConfigSection());

При запуске приложения я получаю следующую ошибку:

Application startup exception
System.NullReferenceException: Object reference not set to an instance of an object.
at <My.Application>.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) in <My.Application>/Startup.cs:line 81
End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.Configure(IApplicationBuilder app)
at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
at Microsoft.AspNetCore.Hosting.Internal.AutoRequestServicesStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder builder)
at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()

Startup.cs:81 содержит:

app.UseMvc(routes =>
{
   routes.MapRoute(
     name: "default",
     template: "{controller=Home}/{action=Index}/{id?}");
});

Мне удалось успешно выполнить все эти операции с журналами CloudWatch внутри моего экземпляра EC2 с помощью интерфейса командной строки AWS.

Требуется ли для библиотеки AWS.Logger.AspNetCore дополнительные разрешения?

...