C# 使用VS2017中的AWS无服务器应用程序读取appsettings.json文件

C# 使用VS2017中的AWS无服务器应用程序读取appsettings.json文件,c#,aws-lambda,visual-studio-2017,amazon-cloudformation,asp.net-core-2.0,C#,Aws Lambda,Visual Studio 2017,Amazon Cloudformation,Asp.net Core 2.0,我创建了一个新的AWS无服务器应用程序(.NET Core)并设置了一个Lambda函数,但我希望像处理普通ASP.NET Core 2 web应用程序一样,从appsettings.json文件中读取一些信息。如何包含appsettings.json文件并读取设置?我想存储一些端点,但不想将它们硬编码到我的应用程序中 执行此操作的方法与将配置系统添加到任何非asp核心项目的方法相同 将以下nuget软件包添加到无服务器应用程序: Microsoft.Extensions.Configurati

我创建了一个新的AWS无服务器应用程序(.NET Core)并设置了一个Lambda函数,但我希望像处理普通ASP.NET Core 2 web应用程序一样,从appsettings.json文件中读取一些信息。如何包含appsettings.json文件并读取设置?我想存储一些端点,但不想将它们硬编码到我的应用程序中


执行此操作的方法与将配置系统添加到任何非asp核心项目的方法相同

将以下nuget软件包添加到无服务器应用程序:

Microsoft.Extensions.Configuration

Microsoft.Extensions.Configuration.Binder

Microsoft.Extensions.Configuration.Json

然后添加
appSettings.json
配置文件。由于您希望将设置包括在已发布的zip文件中,请确保将
复制到输出目录
设置为

在此之后,您可以编写一些初始化代码:

     public IConfiguration Configuration { get; private set; }

     private void ConfigureSettings()
        {
            Configuration = new ConfigurationBuilder()
                .AddJsonFile("appSettings.json", optional: true)
                .Build();
        }
我在上面瞎打字,所以希望它能工作。如果您想使用强类型POCO而不是配置,您可以通过如下操作使用
Microsoft.Extensions.Configuration.Json
功能:

        public ApplicationConfigPoco Configuration
        {
            get
            {
                return Configuration.Get<ApplicationConfigPoco>();
            }
        }
public ApplicationConfigPoco配置
{
得到
{
返回Configuration.Get();
}
}

最后,由于Lambda在linux上运行,请注意Windows系统上不会出现的区分大小写的情况。例如,如果文件为
appsettings.json
,则不会加载
appsettings.json

您上次关于linux中区分大小写的评论非常有用。我可以确认它正在工作。