Я разработал базовый веб-API ASP. NET и опубликовал его в AWS Lambda. Я добавил авторизацию через пул пользователей Cognito. Но после добавления авторизации он всегда возвращает HTTP-код 504 Gateway Timeout с сообщением «Время ожидания запроса конечной точки истекло», когда я вызываю API с помощью почтальона. Но он отлично работает для локального хоста.
Используя AWS API Gateway, я добавил в API авторизатор. Все параметры, такие как идентификатор пула пользователей, идентификатор клиента приложения, регион и секрет клиента, в порядке.
Я добавил к контроллерам атрибут [Authorize] и, следуя, я добавил свой код в файл Startup.cs.
Помогите, пожалуйста, решить эту проблему.
public void ConfigureServices(IServiceCollection services)
{
var region = Configuration["AWSCognito:Region"];
var userPoolId = Configuration["AWSCognito:PoolId"];
var appClientId = Configuration["AWSCognito:AppClientId"];
var clientSecret = Configuration["AWSCognito:ClientSecret"];
services.AddAuthentication("Bearer")
.AddJwtBearer(options =>
{
options.Audience = appClientId;
options.Authority = "https://cognito-idp." + region + ".amazonaws.com/" + userPoolId;
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
// Add S3 to the ASP.NET Core dependency injection framework.
services.AddAWSService<Amazon.S3.IAmazonS3>();
services.AddSingleton<IShoppingListService, ShoppingListService>();
services.AddSingleton<ICompanyService, CompanyService>();
services.AddSingleton<ICompanyRepository, CompanyRepository>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseHsts();
}
app.UseAuthentication();
app.UseHttpsRedirection();
app.UseMvc();
}