【问题标题】:AWS Lambda .NET Core ENV variables namingAWS Lambda .NET Core ENV 变量命名
【发布时间】:2022-07-15 21:51:58
【问题描述】:

我有一个 .NET Core AWS Lambda 函数,我需要指定 特定类或命名空间的日志级别,我需要通过环境变量来做到这一点:Logging__LogLevel__Out.Internal.Class 和值 debug

但是,我收到了一个验证错误:

The key must start with a letter and can only contain letters, numbers, and underscores.

有什么解决办法吗?

谢谢

【问题讨论】:

  • 类/包名可以包含下划线吗?如果不是,那么只需用下划线替换点。
  • 命名空间当然包含点
  • 我的意思是反过来,用环境变量中的下划线替换它,当从 env 变量中读取时,转换它。存储Logging__LogLevel__Out_Internal_Class=debug - 这可以简单地拆分为Internal_Class,然后可以转换为Internal.Class,它应该唯一标识您要配置的类。
  • 是的,先生,我会试试的。谢谢!
  • @luk2302 首先,怎么会有那么多卢克在聊这个。无论如何...当您想使用内置的 Logging 东西来控制日志输出时,手动替换下划线并没有多大用处...?如ConfigurationBuilder

标签: .net-core aws-lambda


【解决方案1】:

作为替代方案,您可以从 AWS Parameter Store 等服务加载配置。这样,您可以将应用程序配置存储为字符串(或 JSON,如果您有多个属性)并在函数初始化中检索一次。它对冷启动性能的影响很小,但可以忽略不计。

这样做的额外好处是,您可以在不更改功能代码的情况下更新配置。

如果您使用标准参数和标准吞吐量,它也是完全免费的。

https://aws.amazon.com/systems-manager/pricing/ https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html https://www.rahulpnath.com/blog/aws-parameter-store/

如果您想要更高级的用例(CICD 用于您的配置、功能标志),还有 AWS AppConfig,但对于简单的用例,参数存储很棒。

【讨论】:

    猜你喜欢
    • 2018-05-19
    • 2020-06-04
    • 2021-07-14
    • 2018-05-16
    • 2018-01-07
    • 2019-03-10
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多