![](/img/trans.png)
[英]Return File from AWS ApiGateway ASP.NET Core 3 Web API running as AWS Lambda function
[英]Autofac as IoC container in AWS Lambda Serverless ASP.NET Core 3.1 Web API
我需要在 AWS Lambda 無服務器環境中使用 Autofac 作為 IoC 容器來公開 Web API。
問題是似乎沒有辦法使用 Autofac,因為 AWS 在其預配置的入口點(LambdaEntryPoint 類)中公開 IWebHostBuilder:-
protected override void Init(IWebHostBuilder builder)
{
builder.UseStartup<Startup>();
}
本地測試工作正常,因為 LocalEntryPoint class 看起來像這樣:-
public class LocalEntryPoint
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.UseStartup<Startup>();
});
}
}
請注意使用此處描述的方法使用IHostBuilder https://autofaccn.readthedocs.io/en/latest/integration/aspnetcore.html#asp-net-core-3-0-and-generic-hosting
任何人都可以提出解決這個問題的方法嗎?
好消息!
我向 AWS 提出了這個問題,他們用新版本的 Amazon.Lambda.AspNetCoreServer (v5.1.0) 作為回應,現在包括使用IHostBuilder
的 Lambda 入口點。
https://aws.amazon.com/blogs/developer/one-month-update-to-net-core-3-1-lambda/
我對其進行了測試,它使用如下入口點代碼與 Autofac 配合得很好:-
protected override void Init(IHostBuilder builder)
{
builder
.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder
.UseStartup<Startup>();
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.