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

Sco*_*ttG 2 c# aws-cloudformation aws-lambda visual-studio-2017 asp.net-core-2.0

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

d

Sar*_*zen 8

您可以采用与将配置系统添加到任何非 asp 核心项目相同的方式来执行此操作。

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

Microsoft.Extensions.Configuration

Microsoft.Extensions.Configuration.Binder

Microsoft.Extensions.Configuration.Json

然后添加您的appSettings.json配置文件。由于您希望将设置包含在已发布的 zip 中,因此请确保设置Copy to Output Directorytrue.

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

     public IConfiguration Configuration { get; private set; }

     private void ConfigureSettings()
        {
            Configuration = new ConfigurationBuilder()
                .AddJsonFile("appSettings.json", optional: true)
                .Build();
        }
Run Code Online (Sandbox Code Playgroud)

我在上面瞎打字,所以希望它有效。如果您想使用强类型 POCO 而不是配置,您可以Microsoft.Extensions.Configuration.Json通过执行以下操作来使用该功能:

        public ApplicationConfigPoco Configuration
        {
            get
            {
                return Configuration.Get<ApplicationConfigPoco>();
            }
        }
Run Code Online (Sandbox Code Playgroud)

最后,由于您的 Lambda 在 linux 上运行,请注意 Windows 系统上不存在的区分大小写。例如,appsettings.json如果您的文件是appSettings.json.