从 C#.NET 6.0 AWS Lambda 函数读取 appsettings.json 值

CPK*_*011 1 c# amazon-web-services aws-lambda

看起来很简单,但对我来说不起作用......

我正在使用 C#.NET 6.0 作为 AWS Lambda 函数。我正在尝试在 Visual Studio 2022 中创建此函数。此 Lambda 函数项目中没有 Startup.cs 文件。只是一个带有函数的类库。

我只想从 C# 函数读取 appsettings.json 文件中的值。Json 文件看起来像这样......

{
  "SQSARN": "arn:aws:sqs:us-east-1:111111111111:SQS-Queue1",
  "BucketName": "excel-s3-bucket",
  "ObjectKey": "Sample.xlsx"
}
Run Code Online (Sandbox Code Playgroud)

我正在读取 C# 代码中的值,如下所示...

config = new ConfigurationBuilder().AddJsonFile("appsettings.json",true,true)
        .SetBasePath(Directory.GetCurrentDirectory())
        .Build();
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试提取如下......

string myValue = config.GetValue<string>("SQSARN");
Run Code Online (Sandbox Code Playgroud)

我正在获得Null上述密钥的价值。

我这里哪里出错了?这里需要添加什么库吗?请告诉我。

SSS*_*SSS 6

这就是我添加 JSON 设置文件的方法。我假设该文件名为appsettings.json,并且它包含一个密钥"BucketName"

  1. 添加 NuGet 包Microsoft.Extensions.Configuration.Json
  2. 右键单击项目 > 添加 > 新项目... > JSON 文件
  3. 在 JSON 文件中添加所有设置
  4. Json 文件属性 > 复制到输出目录 =“始终复制”

然后您可以使用类似于以下的代码访问设置:

using Microsoft.Extensions.Configuration;
var configuration = new ConfigurationBuilder()
                   .SetBasePath(Directory.GetCurrentDirectory())
                   .AddJsonFile($"appsettings.json");
var config = configuration.Build();
var bucketName = config["BucketName"];
Run Code Online (Sandbox Code Playgroud)