【问题标题】:How to set environment variables for complex configuration parameters in AWS lambda using asp.net core 3.1 serverless?如何使用 asp.net core 3.1 serverless 在 AWS lambda 中为复杂的配置参数设置环境变量?
【发布时间】:2022-07-21 22:32:51
【问题描述】:

在我的 asp.net core 3.1 Web API launchsettings.json 我有一个名为 "AdminstratorConfig:AdminstratorPassword": "myPasswordValue" 的环境变量

现在在我的代码中,我还有一个名为 AppSettings 的类,定义如下:

public class AppSettings
{
    public AdminstratorConfiguration AdminstratorConfig { get; set; }
}

public class AdminstratorConfiguration
{
    public string AdminstratorPassword { get; set; }
}

在我的 local 中运行时,我可以在 Startup

中使用类似的东西将环境变量绑定到我的 AppSettings 实例中
public class Startup
{

    public IConfiguration Configuration { get; }
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public void ConfigureServices(IServiceCollection services)
    {
        var appSettings = new AppSettings();
        Configuration.Bind(appSettings);
        // Here appSettings.AdminstratorConfig.AdminstratorPassword contains value 'myPasswordValue' 
    }
}

如果我的配置定义为

,我也会从我的 appsettings.json 加载相同的内容
{
   "AdminstratorConfig": 
    {
       "AdminstratorPassword": "myPasswordValue"
    }
}

但是,在将我的应用程序部署为 AWS 无服务器 lambda 后,我尝试在 Lambda 配置部分设置相同的环境变量,但此处不允许使用特殊字符“:

有没有一种方法可以像我的本地一样在 AWS Lambda 中设置和加载这些复杂的环境变量? 如果不是,还有哪些可能的替代方法?

【问题讨论】:

标签: amazon-web-services asp.net-core aws-lambda aws-serverless aws-sam


【解决方案1】:

您可以使用 __(双下划线)代替 :(冒号),因此 lambda 中的环境变量将是:“AdministratorConfig__AdministratorPassword”作为键,您的“myPasswordValue”作为值。

【讨论】:

    猜你喜欢
    • 2020-03-27
    • 2017-05-15
    • 2016-10-06
    • 1970-01-01
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多