如何在VS2022创建的AWS Lambda NET6应用中配置AWS SystemsManager?
AWS Lambda .NET6 应用配置方案
代码放置位置
你提供的CreateWebHostBuilder方法,要放到Program类里——如果项目里还没Program.cs,直接新建一个就行。在.NET6的AWS Lambda模板里,Program类是应用的入口,负责搭建Web主机并关联你的Startup类。
完整的Program.cs示例:
using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; namespace YourLambdaProjectName { public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .ConfigureAppConfiguration(builder => { builder.AddSystemsManager("/myapplication"); }) .UseStartup<Startup>(); } } }
同时要保证Lambda的入口类(默认是Function.cs)正确关联这个Web主机,示例如下:
using Amazon.Lambda.AspNetCoreServer; using Microsoft.AspNetCore.Hosting; namespace YourLambdaProjectName { public class Function : APIGatewayProxyFunction { protected override void Init(IWebHostBuilder builder) { builder.UseStartup<Startup>(); } } }
替代配置方式
如果不想单独写CreateWebHostBuilder方法,也可以直接在Lambda入口类的Init方法里完成配置,更紧凑:
protected override void Init(IWebHostBuilder builder) { builder .ConfigureAppConfiguration(config => { config.AddSystemsManager("/myapplication"); }) .UseStartup<Startup>(); }
这种方式省去了额外的Program类方法,直接在Lambda初始化阶段完成配置。
要是你需要补充其他配置,也可以结合appsettings.json和环境变量,但从AWS Systems Manager拉取配置的话,上面两种方式最直接。
内容的提问来源于stack exchange,提问作者ZedZip
相关产品推荐
相关产品推荐

